Javascript เก็บค่าลง localStorage กับ SessionStorage ต่างกันอย่างไร
Java Script ทั้ง localStorage กับ sessionStorage นั้นมีหน้าที่เดียวกัน
คือเป็นที่พักข้อมูลเพื่อเรียกใช้ในจุดต่างๆ ในรูปแบบ key , value
โดย localStorage กับ sessionStorage มีความแตกต่างกันที่ scope ดังนี้
localStorage Scope
- localStorage ถูกจัดเก็บอยู่ตลอดตั้งแต่เราเปิด browser จนปิด ลงไป
- localStorage สามารถเข้าถึงข้อมูลที่เก็บไว้ได้ในทุกหน้าต่าง ทุก tab ที่เปิดจาก browser ณ ตอนนั้น
ภายใต้ same origin (domain เดียวกัน)
- localStorage จะหายไปเมื่อเราปิด browser
sessionStorage Scope
- sessionStorage ถูกจัดเก็บเฉพาะใน tab หรือ หน้าต่างที่เปิดเท่านั้น
- sessionStorage จะเข้าถึงข้อมูลได้ภายใน tab ที่ create มันขึ้นมา
- sessionStorage จะหายไปเมื่อเราปิด tab นั้นๆ
- sessionStorage ไม่สามารถเรียกใช้งานข้อมูลข้าม tab ได้
ข้อควรระวังอีกเรื่องในการตั้งชื่อ key จะต้องไม่ซ้ำกันทั้งใน localStorage และ sessionStorage
ตัวอย่างการ ใส่ข้อมูล JSON ลงใน localStorage
//Storing data:
myObj = { "name":"John", "age":31, "city":"New York" };
myJSON = JSON.stringify(myObj);
localStorage.setItem("testJSON", myJSON);
//Retrieving data:
text = localStorage.getItem("testJSON");
obj = JSON.parse(text);
alert(obj.age);