HTML Web Storage API:Místní úložiště a úložiště relací

Rozhraní API webového úložiště HTML poskytuje způsob, jak ukládat data lokálně v prohlížeči uživatele. Můžete jej použít k bezpečnému místnímu uložení velkého množství dat, aniž by to ovlivnilo výkon webu.

Na rozdíl od souborů cookie má webové úložiště výrazně vyšší limit úložiště (5 MB oproti 4 kB) a uložená data se nikdy neodesílají na server při každém požadavku. Server proto nemůže manipulovat s daty webového úložiště prostřednictvím HTTP cookies.

Úložiště je také vázáno na původ (podle domény, protokolu a portu). Všechny webové stránky z jednoho zdroje (se stejným protokolem, doménou a portem) mohou ukládat a přistupovat ke stejným datům. I když změníte protokol z http do https , nemáte přístup k datům uloženým pomocí http protokol.

Objekty webového úložiště

Webové úložiště HTML poskytuje dva objekty pro ukládání dat jako párů klíč–hodnota v prohlížeči:

  • localStorage — ukládá data bez data vypršení platnosti, které přetrvává i po zavření okna prohlížeče. Data musíte explicitně odstranit buď programově, nebo vymazáním dat prohlížeče. Data jsou sdílena mezi všemi relacemi stejného původu.
  • sessionStorage — ukládá data po dobu trvání relace stránky, která se automaticky vymažou při zavření karty prohlížeče. Pokud otevřete více karet stejného webu, budou mít různé relace a nebudou mít přístup k údajům o sobě navzájem.

Od localStorage uchovává data bez data vypršení platnosti, je užitečný pro ukládání informací, jako jsou položky nákupního košíku, uživatelské preference (měna, tmavé nebo světlé barevné schéma), produkty uložené v záložkách nebo dokonce zapamatování si, že je uživatel přihlášen na webu.

Metody a vlastnosti

Oba localStorage a sessionStorage objekty poskytují stejné metody a vlastnosti, protože vracejí stejný objekt Storage.

Storage objekt má pouze jednu vlastnost, length , která vrací počet položek v něm uložených.

Zde je seznam metod, které můžete volat k manipulaci s daty webového úložiště:

Metoda Popis
setItem(key, value) Přidejte do úložiště nový pár klíč–hodnota
getItem(key) Načíst hodnotu podle jejího klíče
removeItem(key) Odstranění položky pomocí jejího klíče
clear() Smazat všechny páry klíč–hodnota
key(n) Získejte název n-tého klíče v úložišti

Příklady webového úložiště

Pojďme si hrát s localStorage abyste získali představu o tom, jak webové úložiště funguje.

Ukládání dat

Následující příklad používá setItem() přidat nové páry klíč–hodnota do localStorage :

localStorage.setItem('id', 'ATS-456');
localStorage.setItem('email', '[email protected]');

Všimněte si, že klíč i hodnota byly předány setItem() musí být struny. Pokud předáte jakoukoli hodnotu, která není řetězec, například objekt nebo číslo, setItem() metoda jej automaticky převede na řetězec:

localStorage.setItem('visitors', 34); // stored as '34'
localStorage.setItem('user', { name: 'Alex' }); // stored as '[oject Object]'

U objektů musíte před uložením do webového úložiště použít metodu JSON.stringify() k převodu na řetězec:

const str = JSON.stringify({name: 'Alex'});
localStorage.setItem('user', str);

Načítání dat

Chcete-li získat uložená data v localStorage pomocí klíče, použijte getItem() metoda:

localStorage.getItem('id');     // ATS-456
localStorage.getItem('email');  // [email protected]

Případně můžete také použít tečku (. ) dar pro přístupové klíče od localStorage jako objekty:

localStorage.visitors;  // 45

Pokud klíč neexistuje, null hodnota je vrácena getItem() :

localStorage.getItem('name'); // null

Odebrání dat

Chcete-li odstranit pár klíč–hodnota z localStorage , stačí předat název klíče do removeItem() metoda:

localStorage.removeItem('id');

Případně můžete také použít delete operátor k odstranění klíče jako objektu:

delete localStorage.email;

Chcete-li odstranit všechny páry klíč–hodnota, použijte clear() metoda místo toho:

localStorage.clear();

Iterace přes klávesy

Iterovat přes všechny klíče uložené v localStorage , můžeme použít cyklus for...of:

const keys = Object.keys(localStorage);
for (let key of keys) {
    console.log(`${key}: ${localStorage.getItem(key)}`);
}

Object.keys() metoda vrací všechny vlastní vlastnosti localStorage objekt, ignorující prototyp.

Shrnutí

Webové rozhraní API pro ukládání HTML poskytuje mechanismus pro místní ukládání dat v prohlížeči uživatele. Před ukládáním na web byly soubory cookie jedinou dostupnou možností pro ukládání dat aplikací.

Na rozdíl od cookies je webové úložiště bezpečnější a dokáže uložit větší množství dat (5 MB+, v závislosti na prohlížeči), aniž by to ovlivnilo výkon aplikace.

Webové úložiště je vázáno na zdroj, což znamená, že stránky ze stejného zdroje mohou přistupovat pouze ke svým vlastním datům.

Webové úložiště poskytuje dva objekty, localStorage a sessionStorage , chcete-li uložit data jako páry klíč–hodnota v prohlížeči.

Data uložená v localStorage je trvalé a sdílené mezi všemi kartami a okny se stejným původem. Přetrvává i po zavření prohlížeče nebo restartování počítače.

sessionStorage objekt dočasně ukládá data, dokud není relace aktivní. Data jsou přístupná pouze na stejné kartě a nelze k nim přistupovat z jiných karet. Po zavření karty prohlížeče se automaticky vymaže.