Vysvetlite rozdiel medzi cookies, sessionStorage a localStorage.
sobes.tech AI
Odpoveď od AI
Cookies ukladajú malé objemy textovej informácie (do 4KB) na strane klienta, odosielajú sa s každým HTTP požiadavkou na doménu, ktorá ich nastavila. Môžu mať dobu platnosti. Používajú sa na autorizáciu, sledovanie používateľov, uloženie používateľských preferencií.
localStorage ukladá údaje bez doby platnosti (kým ich používateľ nevymaže alebo neukončí prehliadač) na strane klienta (do 5-10MB v závislosti od prehliadača). Dáta sú dostupné medzi reláciami prehliadača, ale len pre skripty rovnakého pôvodu (doména, protokol, port). Neodosielajú sa automaticky s HTTP požiadavkami. Používajú sa na trvalé ukladanie dát, nastavenia aplikácie.
sessionStorage ukladá údaje počas jednej relácie prehliadača (kým je karta alebo okno otvorené). Dáta sa vymažú pri zatvorení karty alebo okna. Veľkosť úložiska je podobná localStorage (do 5-10MB). Dáta sú dostupné len pre skripty rovnakého pôvodu. Neodosielajú sa automaticky s HTTP požiadavkami. Používajú sa na dočasné ukladanie dát, špecifických pre aktuálnu reláciu.
| Charakteristiky | Cookies | localStorage | sessionStorage |
|---|---|---|---|
| Doba uloženia | Doba platnosti alebo zatvorenie prehliadača | Kým ich používateľ nevymaže alebo neodstráni | Kým je karta alebo okno otvorené |
| Veľkosť dát | Do 4KB | Do 5-10MB | Do 5-10MB |
| Dostupnosť | Odosielajú sa s HTTP požiadavkami na doménu | Len cez JavaScript rovnakého pôvodu | Len cez JavaScript rovnakého pôvodu |
| Dostupnosť medzi kartami | Áno | Áno | Nie (pre rôzne karty) |
| Účel | Autentifikácia, sledovanie, preferencie | Dlhodobé ukladanie, nastavenia | Dočasné ukladanie v rámci relácie |
Príklad použitia localStorage:
// Uložiť údaje
localStorage.setItem('userName', 'Alice');
// Získať údaje
const userName = localStorage.getItem('userName');
console.log(userName); // Výstup: Alice
// Odstrániť údaje
// localStorage.removeItem('userName');
// Vyčistiť celé úložisko
// localStorage.clear();
Príklad použitia sessionStorage:
// Uložiť údaje
sessionStorage.setItem('orderId', '12345');
// Získať údaje
const orderId = sessionStorage.getItem('orderId');
console.log(orderId); // Výstup: 12345
// Odstrániť údaje
// sessionStorage.removeItem('orderId');
// Vyčistiť celé úložisko
// sessionStorage.clear();