Web Storage (lokální úložiště) – HTML5
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Web Storage (lokální úložiště) – HTML5Web Storage (lokální úložiště) – HTML5

 

Web Storage (lokální úložiště) – HTML5

Google       Google       26. 3. 2012       9 873×

Lokální úložiště (anglicky Web Storage) umožňuje ukládat informace o relaci u klienta v podobě klíč / hodnota. Data se nepřenáší na vzdálený server a storage je funkční ve všech moderních prohlížečích (IE8+).

Lokální úložiště

Lokální úložiště je webová metoda pro ukládání dat v prohlížeči. Data můžeme ukládát hned dvěma způsoby:

1. sessionStorage - pro ukládání krátkodobých dat, vydrží po dobu relace prohlížeče. Pokaždé, když uživatel otevře stránku v novém okně/záložce, prohlížeč vytvoří nový objekt sessionStorage (sessions).

2. localStorage - ukládá data pro více než jednu relaci, je funkčně shodný se sessionStorage, krom toho, že doba uložení dat nezáleží na životnosti okna/záložky (efektivní alternativa cookies).

// hodnota vydrží po dobu trvání relace
sessionStorage.setItem('klíč', 'hodnota');

// hodnota vydrží i po skončení session
localStorage.setItem('klíč', 'hodnota');

Zjištění podpory

Jednoduchým kódem zjistíme, zda je lokální úložiště v prohlížeči podporováno:

if ("localStorage" in window && window.localStorage != null) {
    // podporuje
    document.write("Prohlížeč podporuje lokální úložiště!");
} else {
    // nepodporuje
    document.write("Prohlížeč nepodporuje lokální úložiště!");        
}

V Internet Exploreru se do 8. verze vypíše, že nepodporuje lokální úložiště, a od 8. verze že podporuje. Více informací o podpoře napříč prohlížeči najdete na konci článku.

Metody

setItem(key / value): přidá pár (klíč / hodnota) do objektu sessionStorage,
getItem(key): načte hodnotu pro daný klíč,
clear(): odstraní všechny páry (klíč / hodnota) pro objekt sessionStorage,
removeItem(key): odstraní pár (klíč / hodnota) z objektu sessionStorage,
key(k): načte hodnotu klíče (k).

Při zadávání klíče můžete používat diakritiku.

V uvedených příkladech používáme sessionStorage, není třeba uvádět i localStorage, protože použití je úplně stejné.

Nastavení hodnoty
 

// nastaví pár (klíč / hodnota)
sessionStorage.setItem('jmeno','Filip'); // klíč = jmeno | hodnota = Filip

// nebo zkráceně
sessionStorage.jmeno = 'Filip';

Získání hodnoty
 

// vrátí 'Filip'
sessionStorage.getItem('jmeno');

// zkráceně, vrátí také 'Filip'
sessionStorage.jmeno;

Pokud chceme načtenou hodnotu i vypsat, musíme ji v JavaScriptu načíst do proměnné a až tu vypsat:

sessionStorage.jmeno = 'Filip'; // nastavíme jméno
var _jmeno = sessionStorage.jmeno; // do proměnné '_jmeno' načteme jméno (Filip)
document.write(_jmeno); // vypíšeme jméno (Filip)

Odstranění klíče / hodnoty
 

// odstraní pár (klíč / hodnota)
sessionStorage.removeItem('jmeno'); // odstraní jméno

Čištění úložiště
 

// vyčistí vše
sessionStorage.clear();

Příklady

V jednoduchých příkladech si ukážeme, jak můžeme Web Storage prakticky využít.

Navštívení dané stránky

V tomto příkladě si uděláme jednoduché počítadlo, které bude počítat navštívení dané stránky uživatelem.
Všimněte si, že používáme localStorage => v počítání můžeme pokračovat při další návštěvě.

Postup:

  1. Vytvoříme span s id pocitadlo (budeme do něj vypisovat výsledek).
  2. Pokud neexistuje pageLoadCount (I), nastavíme na nulu (II).
  3. Při každé návštěvě přičteme +1.
  4. Do spanu s id pocitadlo vypíšeme výsledek.
<p>
  Tuto stránku jste si zobrazili <span id="pocitadlo">nevíme</span> krát.
</p> <!-- 1. -->

<script>
  if (!localStorage.pageLoadCount) // 2.I.
    localStorage.pageLoadCount = 0; // 2.II.
    localStorage.pageLoadCount = parseInt(localStorage.pageLoadCount) + 1; // 3.
    document.getElementById('pocitadlo').textContent = localStorage.pageLoadCount; // 4.
</script>

Výsledky příkladů

Odkaz na odhlášení
 

Vytvoříme si odkaz pro odhlášení uživatele, pokud bude nastaven objekt jméno, vyskočí okno s textem, aby se uživatel brzy vrátil.

Postup:

  1. Nastavíme jméno.
  2. Vytvoříme odkaz pro odhlášení - okno vyskočí v případě, že je nastaveno jméno.
<script>
sessionStorage.jmeno = 'Patrik'; // 1.
</script>

<!-- 2. -->
<a href="javascript:;" onClick="if(sessionStorage && localStorage.getItem('jmeno')) { alert('Vrať se brzy, ' + sessionStorage.getItem('jmeno')); }">Odhlásit se</a>

Výsledky příkladů

Velikost

Web Storage poskytuje mnohem větší kapacitu než cookies (4KB).

Velikost Web Storage
Internet Explorer 10MB na doménu
Mozilla 5MB na doménu
Google Chrome 5MB na doménu
Opera 5MB na doménu

Podpora

Web Storage je funkční ve všech moderních prohlížečích, viz tabulka.

Podpora Web Storage
Internet Explorer od verze 8
Mozilla Firefox 2, oficiálně 3.5+
Safari od verze 4
Google Chrome 4+ (sessionStorage 5+)
Opera 10.50+

Výsledky příkladů najdete na samostatné stránce.

×Odeslání článku na tvůj Kindle

Zadej svůj Kindle e-mail a my ti pošleme článek na tvůj Kindle.
Musíš mít povolený příjem obsahu do svého Kindle z naší e-mailové adresy kindle@programujte.com.

E-mailová adresa (např. novak@kindle.com):

TIP: Pokud chceš dostávat naše články každé ráno do svého Kindle, koukni do sekce Články do Kindle.

3 názory  —  3 nové  
Hlasování bylo ukončeno    
25 hlasů
Google
(fotka) Patrik JanáčekAutor se zajímá o programování v PHP, rád poslouchá hudbu, sportuje a hraje počítačové hry. Má rád Firefox a Windows Phone.
Facebook    

Nové články

Obrázek ke článku Skipper, vizuální vývoj ORM snadno a rychle

Skipper, vizuální vývoj ORM snadno a rychle

Skipper je nejnovější verze vizualizačního nástroje pro ORM frameworky, dříve známého jako ORM Designer. Jeho hlavní výhodou je možnost automaticky převést existující projekty do vizuální podoby, editovat je přímo v diagramu a změny automaticky exportovat jako definice.

Obrázek ke článku Již podruhé Společně otevíráme data. Přijďte na zahájení soutěže!

Již podruhé Společně otevíráme data. Přijďte na zahájení soutěže!

Fond Otakara Motejla v září spustí druhý ročník soutěže Společně otevíráme data, která oceňuje nejlepší aplikace postavené na otevřených datech veřejné správy. Na slavnostním zahájení vystoupí zástupci úřadů, jež poskytují svá data v otevřených formátech. Představí se též mentoři z předních IT firem.

loadingtransparent (function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032014 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý