Web Storage (lokální úložiště) – HTML5
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
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       16 550×

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+).

Reklama
Reklama

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 Nový IT hráč na českém trhu

Nový IT hráč na českém trhu

V roce 2015 otevřela v Praze na Pankráci v budově City Tower své kanceláře společnost EPAM Systems (NYSE:EPAM), jejíž centrála se nachází v USA. Společnost byla založená v roce 1993 a od té doby prošla velkým vývojem a stále roste.

Reklama
Reklama
Obrázek ke článku České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace opět hledají nejlepší nápady pro internet věcí

České Radiokomunikace (CRA) pořádají druhý ročník CRA IoT Hackathonů. Zájemci z řad vývojářů a fanoušků moderních technologií mohou změřit své síly a během jediného dne sestrojit co nejzajímavější funkční prototyp zařízení, které bude komunikovat prostřednictvím sítě LoRa. CRA IoT Hackathony se letos uskuteční ve dvou fázích, na jaře a na podzim, v různých městech České republiky. Jarní běh se odstartuje 31. března v Brně a 7. dubna v Praze.

Obrázek ke článku Cloud computing je využíván stále intenzivněji

Cloud computing je využíván stále intenzivněji

Využívání cloud computingu nabývá na intenzitě. Jen v letošním roce vzroste podle analytiků trh se službami veřejného cloudu o 18 %, přičemž o téměř 37 % vzrostou služby typu IaaS. Růst o více než pětinu pak čeká služby poskytování softwaru formou služby, tedy SaaS. Aktuálním trendům v oblasti využívání cloudu se bude věnovat konference Cloud computing v praxi, která se koná 23. března. 2017 v pražském Kongresovém centru Vavruška na Karlově náměstí 5.

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 © 20032017 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý