A session storage csak addig menti az adatot a böngészőben, amíg a lap nyitva van. Tudd meg, hogyan működik, miben különbözik a local storage-tól, és mire használják a weboldalak.
Mi lenne, ha egy weboldal pont annyit tudna megjegyezni, amennyi a zökkenőmentes látogatáshoz kell, és semmit sem őrizne meg, miután elmentél? Nincs hátramaradt adat, nincsenek tárolt beállítások, semmi, ami ottmarad. Csak a megfelelő információ a megfelelő pillanatra, aztán eltűnik. Ez a session storage lényege, és hasznosabb, mint elsőre hangzik.
Ha már elolvastad a local storage fejezetét, tudod, hogy az akkor is megtartja az adatot, ha a böngészőt bezárják. A session storage az ellenkező megközelítést választja. Ideiglenesnek tervezték, és ez nem korlát. Szándékos tulajdonság.
Mi az a session storage?
A session storage a böngészőtár egyik típusa, amely egy böngészőlap munkamenetének idejére menti az adatot. Amíg a lap nyitva marad, az adat elérhető. Abban a pillanatban, hogy a látogató bezárja a lapot, a session storage automatikusan kiürül. Ha ugyanazt a weboldalt új lapon nyitod meg, a session storage üresen indul.
A local storage-hoz hasonlóan a session storage is kulcs-érték tárként működik. A weboldalak egy címkével és egy értékkel írnak adatot, és a címke megkeresésével kérik le. A különbség kizárólag abban van, mennyi ideig marad meg az adat. A local storage határozatlan ideig megmarad. A session storage a lappal él és hal.
Miben különbözik a session storage a local storage-tól?
A fő különbség a tartósság. A local storage adata a böngészőben marad, amíg kézzel nem törlik. A session storage adata abban a pillanatban eltűnik, amikor a lapot bezárják. Ezért más-más helyzetekhez illenek.
A session storage lapspecifikus is. Ha a látogató ugyanazt a weboldalt két különböző lapon nyitotta meg, mindegyik laphoz külön session storage tartozik. Nem osztoznak az adatokon. A local storage ezzel szemben megosztott az ugyanahhoz a weboldalhoz tartozó összes lap között ugyanabban a böngészőben.
Mire használják a weboldalak a session storage-ot?
Az előrehaladás követése egy munkameneten belül
A többlépéses űrlapok és fizetési folyamatok gyakran használják a session storage-ot az előrehaladás tárolására, ahogy a látogató egyik lépésről a másikra halad. Ha visszalép egy korábbi lépésre, a válaszai még ott vannak. A munkamenet végén ez az ideiglenes adat eltűnik, ami pontosan az, amit egy fizetési folyamatnál szeretnél.
Ideiglenes felületállapot
Hogy nyitva van-e egy oldalsáv, melyik fül van éppen kiválasztva, vagy meddig görgetett a látogató egy hosszú listában: ezek mind ideiglenes állapotok, amelyeket érdemes a látogatás alatt tárolni, de a látogató távozása után már nincs értékük. A session storage ezt tisztán kezeli.
Érzékeny kontextus rövid életű megőrzése
Mindenhez, ami a felhasználó látogatás közbeni aktuális kontextusához kapcsolódik, a session storage a biztonságosabb választás a local storage-nál, mert az adat automatikusan eltakarítja magát. Nincs annak kockázata, hogy érzékeny kontextus ottmaradjon a böngészőben a látogatás végeztével.
Mikor használj session storage-ot, és mikor local storage-ot?
A választás egyetlen kérdésen múlik: túl kell-e élnie ennek az adatnak az aktuális lapmunkamenetet? Ha igen, a local storage a megfelelő eszköz. Ha az adat csak az aktuális látogatás alatt releváns, és nem kell továbbvinni, a session storage a jobb választás.
Érzékeny adatokhoz egyik sem megfelelő. A jelszavakat, fizetési adatokat és személyes információkat mindig a szerver oldalán kell kezelni, megfelelő SSL-titkosítással, és soha nem szabad a böngészőben tárolni. Az összes böngészőtár-lehetőség és azok összehasonlításának teljes képéért olvasd el a böngészőtár típusairól szóló cikket.
Gyakran ismételt kérdések
A session storage a böngésző bezárásakor törlődik, vagy csak a lap bezárásakor?
A session storage az adott lap bezárásakor törlődik. Ha a látogatónak több lap van megnyitva, és bezár egyet, csak annak a lapnak a session storage-adatai törlődnek. A többi lap megtartja a sajátját. Ha az egész böngészőt bezárják, az összes lap session storage-adatai törlődnek, mert ekkor minden aktív munkamenet véget ér.
Osztozhat két lap ugyanazon a weboldalon a session storage-on?
Nem. A session storage lapokra elkülönített. Ha ugyanaz a weboldal két külön lapon van nyitva, mindegyik laphoz külön session storage tartozik, amelyet a másik lap nem olvashat és nem írhat. Ez különbözik a local storage-tól, amely megosztott az ugyanahhoz a weboldalhoz tartozó összes lap között ugyanabban a böngészőben.
Biztonságosabb a session storage, mint a local storage?
Érzékeny kontextushoz valamivel jobb, mert az adat a lap bezárásakor automatikusan törlődik. De az oldalon futó bármelyik szkript továbbra is hozzáfér, így nem alkalmas jelszavakhoz, személyes adatokhoz vagy fizetési információkhoz. Az automatikus takarítás csökkenti a kitettség idejét, de ugyanazok az alapvető biztonsági szabályok érvényesek. Az érzékeny adatok a szerverre valók, nem a böngészőbe.
Mi történik a session storage-dzsal, ha a látogató frissíti az oldalt?
Az oldal frissítése nem üríti ki a session storage-ot. Az adat átvészeli az oldalújratöltéseket, amíg a lap nyitva marad. Ezért hasznos a session storage az állapot megőrzésére frissítések között ugyanazon a látogatáson belül, például egy részben kitöltött űrlap megtartására, anélkül hogy az adat a látogató távozása után is megmaradna.
Mennyi adatot tárolhat a session storage?
A session storage kapacitása nagyjából megegyezik a local storage-éval, böngészőtől függően lapon körülbelül 5-10 megabájt. Ez több mint elég ideiglenes felületállapotokhoz és folyamatban lévő űrlapadatokhoz. Nagyobb adathalmazokhoz vagy fájlokhoz az IndexedDB jobban megfelel.
Be kell állítanom a session storage-ot a weboldalamon?
Nem, ha weboldalépítőt használsz. A session storage-ot a platform belsőleg használja például az űrlapállapot és a munkameneten belüli beállítások kezelésére. A háttérben fut, nincs mit beállítanod. A WEMASY weboldalépítőjében a platform automatikusan intézi a böngészőtárral kapcsolatos döntéseket, így a látogatóid beállítás nélkül gördülékeny élményt kapnak.