Helyi tárolás "per" eredetű. (Tartományonként és protokollként).
Helyi adattárolók, képesek webes alkalmazások adatait tárolni helyben, azaz, a saját vagy felhasználó böngészőjében.
HTML5 előtt, munkamenet alkalmazások adatait cookie-ban kellett tárolni, minden szerver kérelmmel együtt.
Helyi tárolás sokkal biztonságosabb, és nagy mennyiségű adat tárolható helyben, anélkül, hogy a honlap teljesítményét lerontaná.
Ellentétben a cookie-val, a tárolási határérték jóval nagyobb (legalább 5 MB) és adatait soha nem adja át a szervernek.
HTML helyi (kliens oldali) adattárolásra, két objektum van:
1. window.sessionStorage - Tárolja az adatokat egy alkalommal, azaz még a böngésző programunkat, be nem zárjuk.
2. window.localStorage - Tárolja az adatokat addig, amig ki nem töröljük. Lejárati ieje (dátum) nincs.
A sessionStorage:
Megegyezik a fejlettebb programoknál alkalmazott SESSION munkamenet változóval.
Annyi különbséggel, hogy a JavaScript nem a szerveren, hanem, a saját számítógépünkön vagy a kliens számítógépén tárolja a munkamenet változót.
Élettartama a böngésző bezárásával megszűnik.
A localStorage:
Megegyezik a fejlettebb programoknál alkalmazott COOKIE változóval.
Élettartama a böngésző bezárásával nem szűnik meg, és elérhető lesz a következő napon, héten, egész évben, azaz, mindaddig létezik, még nem töröljük, a következő utasítással.
localStorage.removeItem("lastname");
Létrehozás feltétele, mindkét utasításnál:
A sessionStorage objektum egyenlő a localStorage objektummal, eltérés csak az élettartamukban van.
Minden alkalommal, azaz használat előtt, ellenőrízzük a helyi tároló létezését!
Az aktuális böngésző támogatja vagy sem, a localStorage és sessionStorage utasítást!
<span id="result"></span> <script type="text/javascript"> if(typeof(Storage) !== "undefined") { // Kódja localStorage/sessionStorage. (helyi tárolás / munkamenet tárolás.) var igen="Igen támogatja a localStorage és sessionStorage utasítást."; document.getElementById("result").innerHTML =igen; } else { // Bocsánat! Nincs Web Storage támogatás. var nem="Bocsánat! Nincs Web Storage támogatás."; document.getElementById("result").innerHTML =nem; } </script>
Megjegyzés:
A SESSION (sessionStorage) munkamenet tároló megsemmisül, ha a böngésző programot bezárjuk.
Kezdők és haladók, nem szeretnek dokumentációt készíteni weboldalaikról.
Profiknak, azaz, bármelyik cégnél vagy állami hivatalnál dolgozó webfejlesztőknek, programozóknak, ez kötelező.
Mért kell az a fránya dokumentáció?
Kezdőknek és haladóknak azért, hogy mindig tudomásuk legyen arról, melyik témakör, milyen munkamenet tárolóval dolgozik.
Ennek hiányában, más témakörben is létrehozhatnak már létező munkamenet tárolóval megegyező munkamenet tárolót, mely felülírja a már meglévőt.
Azt gondolják, írnak egy programot, mely lekérdezi a már létrehozott munkamenet változókat.
Probléma akkor van, ha valamelyik már megírt program, a hozzá tartozó munkamenet tárolót, egy bizonyos esemény bekövetkeztekor hozza létre, azaz, a lekérdezéskor még nem jelenik meg, a létezők listájában.
Ilyenek a SESSION munkamenet tárolók, minden alkalommal, mikor a böngészőt bezárjuk, törlődnek.
Böngésző programunk újbóli használatakor történő session munkamenet tároló lekérdezéskor, semmi eredményt sem kapunk arról, hogy milyen elnevezésűek vannak már a meglévő programjainkban, melyek egy bizonyos esemény bekövetkezésekor aktiválódnak.
Ugyan ezt elmondhatjuk a LOCALIS (localStorage) munkamenet tárolóról.
Igaz, ezek nem semmisülnek meg, a böngésző program bezárásakor.
Elméletileg, böngésző programunk újbóli használatakor történő lekérdezéskor, lekérdezhetjük őket.
Gyakorlatban probléma akkor van, ha időközben valami oknál fogva, törlésre került sor, de nem abban a programban, melyben létrejött.
Ekkor következhet be a hiba, lekérdezzük a létezőket, és a lista alapján egy másik programban, véletlen hozunk létre ugyan azon néven munkamenet tárolót, melyet egy másik program is tartalmaz, csak még ez a program nem aktiválta a saját munkamenet tárolóját.
Véletlenszerű hibák elkerülése.
Készítsünk egy listát papíron vagy valamilyen programmal, az elhelyezett munkamenetekről.
Így mindig tudni fogjuk, hogy melyik program, milyen munkamenet tárolóval dolgozik.