A web storage segítségével adatokat tudunk tárolni a böngészőben, kulcs-érték párok segítségével. Az adatokat szöveges formátumban tárolja. A tárhely mérete 5-10MB. Mivel „könnyen” hozzáférhető, nem alkalmas felhasználói adatok tárolására. Itt tárolhatók pl. felhasznóli beállítások – egy adott oldalon dark mode. Két fajtája van: localStorage és sessionStorage. A localStorage-ben tárolt változók megmaradnak a böngésző bezárása után is, míg a sessionStorage-ban csak az adott oldal bezárásáig. Bővebben a W3scools-on.
1. példa
Hozzunk létre egy változót, és tároljuk el localStorage-ban! Változó létrehozása: localStorage.setItem(„azonosíto(kulcs)”,”érték”);
Változó tartalmának kiolvasása: localStorage.getItem(„azonosito”);
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title></title> </head> <body> <div id="demo"></div> <script> localStorage.setItem("nev","Teszt Elek"); document.getElementById("demo").innerHTML = localStorage.getItem("nev"); </script> </body> </html> |
2. példa: Készítsünk űrlapot, amelynek segítségével egy váltoónak tudunk értéket adni! Bővítsük ki a programot törlési lehetőséggel! A localStorage.clear(); utasítás segítségével az összes helyben mentett változót töröljük!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Űrlap + storage</title> </head> <body> <h1>Local storage használata</h1> <div id="adatok"></div> <button onclick="MentettAdat();" >Mentett adat</button><br> <button onclick="Torles();" >Törlés</button> <form> Adat: <input type="text" id="pelda"><br> <input type="button" value="Mentés" onclick="Mentes();"> </form> <script> function Mentes(){ const p = document.getElementById("pelda").value; localStorage.setItem("valtozo",p); } function MentettAdat(){ const mentettValtozo = localStorage.getItem("valtozo"); if (mentettValtozo !== null && mentettValtozo!== undefined) { document.getElementById("adatok").textContent=mentettValtozo; } else { document.getElementById("adatok").textContent="nincs"; } } function Torles(){ localStorage.clear(); } </script> </body> </html> |
3. példa: számoljuk ki egy téglalap kerületét, területét, és tároljuk el az értéküket!
Bővítsük ki a programot úgy, hogy kiírja az összes változó nevét (kulcsát) és értékét! Egy for ciklussal végig tudunk menni az összes helyi változón! Azt, hogy mennyi van belőlük, a localStorage.Length utasítással tudjuk megnézni. A változók kulcsait a localStorage.key() utasítással tudjuk megnézni.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <h1>Téglalap kerülete, területe + LocalStorage</h1> <form> a oldal: <input type="number" id="a_oldal"><br> b oldal: <input type="number" id="b_oldal"><br> <input type="button" value="Számítás" onclick="Szamitas();"> </form> <div id="kerulet"></div> <div id="terulet"></div> <div id="mind"></div> <input type="button" value="Mentett adatok" onclick="Kiir();"><br> <input type="button" value="Összes változó" onclick="Elemek();"><br> </form> <script> function Szamitas(){ const a = parseFloat(document.getElementById("a_oldal").value); const b = parseFloat(document.getElementById("b_oldal").value); const k = 2*(a+b); const t = a*b; document.getElementById("kerulet").textContent = "Kerület: "+k; document.getElementById("terulet").textContent = "Terület: "+t; localStorage.setItem("kerulet",k); localStorage.setItem("terulet",t); } function Kiir(){ const mentettKerulet = localStorage.getItem("kerulet"); const mentettTerulet = localStorage.getItem("terulet"); alert("Mentett adatok: "+mentettKerulet+" "+mentettTerulet); } function Elemek(){ var i; for (i=0; i<localStorage.length; i++){ x = localStorage.key(i); y = localStorage.getItem(x); document.getElementById("mind").innerHTML += x + " "+ y + "<br>"; } } </script> </body> </html> |
4. példa: Tároljunk el egy tömböt localStorage-ban, majd olvassuk ki az elemeit! Mivel a localStorage
csak szövegként tárolja az adatokat, általában ehhez a JSON (JavaScript Object Notation) formátumot használják az adatok átalakításához és visszaállításához.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<!DOCTYPE html> <html lang="hu"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Tömb adatainak tárolása</title> </head> <body> <h2>Tömb kiíratása</h2> <div id="eredmeny"></div> <script> // Tömb elmentése localStorage-ba const tomb = [1, 2, 3, 4, 5]; localStorage.setItem('tomb1', JSON.stringify(tomb)); // Tömb visszaolvasása a localStorage-ból const tarolt_tomb = JSON.parse(localStorage.getItem('tomb1')); // Kiíratás a képernyőre const eredmenyDiv = document.getElementById('eredmeny'); eredmenyDiv.textContent = 'Tárolt tömb: ' + tarolt_tomb.join(', '); // Join metódus az elemek vesszővel történő elválasztására </script> </body> </html> |