Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Môžete však monitorovať množstvo využívaného priestoru a podniknúť kroky, keď sa blíži k limitu. Zahŕňa to kontrolu veľkosti „lokality“ a implementácie stratégií na efektívnu správu ukladania.
Tu je návod, ako k tomu pristupujete:
1. Kontrola veľkosti lokálnejstál:
Neexistuje žiadna priama metóda na získanie celkovej veľkosti „LocalStorage“. Musíte iterovať cez kľúče a zhrnúť veľkosť reprezentácie reťazca každej položky. Majte na pamäti, že ide o aproximáciu *, pretože skutočná veľkosť úložiska sa môže v dôsledku optimalizácie interného prehliadača mierne líšiť.
`` `JavaScript
funkcia getLocalStorageSize () {
Nech veľkosť =0;
pre (nech kľúč v localStorage) {
size +=localStorage.GetItem (kľúč) .Length;
}
veľkosť návratu; // v znakoch
}
Nech currentsize =getLocalStorageSize ();
Console.log ("Aktuálna veľkosť localStorage:", currentsize, "znaky");
`` `
2. Implementácia stratégií riadenia veľkosti:
Akonáhle budete mať spôsob, ako monitorovať veľkosť, musíte definovať stratégie, aby ste predišli prekročeniu limitu prehliadača:
* Správa kvót (pomocou API Storage): Toto je najrobustnejší prístup. API „Storage` API (konkrétne` Navigator.storage.estimate () `) poskytuje presnejší odhad dostupnej kvóty a použitia. Môžete ho použiť na určenie, kedy sa blížite k limitu. Je to však novšie API a nemusia ho podporovať všetky prehliadače.
`` `JavaScript
navigator.storage.estimate (). potom ((kvóta) => {
Console.log („kvóta:“, kvóta.quota, „bajty“);
Console.log („Použitie:“, kvóta.usage, „bajty“);
// Implementujte logiku na základe kvóty a použitia.
});
`` `
* najmenej nedávno použité (LRU) alebo iné stratégie vysťahovania: Ak ukladáte veľa údajov, možno budete musieť implementovať vyrovnávaciu pamäť LRU, aby ste odstránili staršie alebo menej často používané položky, keď sa ukladanie priblíži k jej limitu. Vyžaduje si to starostlivý dizajn v závislosti od vašej dátovej štruktúry.
* Kompresia údajov: Pred uložením údajov zvážte ich komprimovanie (napr. Používanie `json.Stringify` s príslušnými možnosťami alebo knižnicou, ako je lzString). To môže znížiť požadovaný úložný priestor.
* agregácia údajov: Namiesto ukladania mnohých malých položiek sa pokúste agregovať údaje do väčších, menej položiek.
* Varovanie pre používateľa: Vzhľadajte používateľa, ak je úložisko plné.
Príklad kombinujúcou kontrolu a varovanie veľkosti:
`` `JavaScript
const Storage_limit_chars =5 * 1024 * 1024; // 5 MB približne (podľa potreby upravte)
funkcia kontrolaLocalStorageSize () {
const size =getLocalStorageSize ();
if (size> ukladanie_limit_chars * 0,8) {// 80% prahová hodnota
Výstraha („Lokálne úložisko je takmer plné. Niektoré údaje sa môžu stratiť, ak budete pokračovať.“);
} else if (size> úložisko_limit_chars * 0.9) {// 90% - agresívnejšie varovanie
// potenciálne odstráňte niektoré údaje tu na základe vašej stratégie LRU
}
}
// zavolajte túto funkciu pravidelne alebo pri pridávaní údajov.
checkLocalStorageSize ();
`` `
Pamätajte, že skutočná maximálna veľkosť je závislá od prehliadača a môže sa líšiť v závislosti od faktorov, ako je dostupná pamäť. Najlepším prístupom je kombinácia monitorovania, proaktívnej správy veľkosti a elegantného riešenia potenciálnych obmedzení ukladania. Vždy informujte používateľov o obmedzeniach ukladania a vašich stratégiách na ich správu.