Locale Storage กับ sessionStorage

  •  Locale Storage กับ sessionStorage เป็น Object ที่เป็น property ของ Object Window
  • ค่าของ property ของ Locale Storage กับ sessionStorage จะเป็น String เท่านั้น

อายุการเก็บค่ากับ Scope

 

Lifetime

Scope

localStorage

ตลอดไปจนกว่าจะถูกลบ

document origin (protocol+hostname+port)

sessionStorage

หายไปเมื่อปิดหน้าต่าง (Browser อาจจะเอาค่ากลับคืนหากมีการใช้ restore tab )

document origin + window

Script ที่รันคนละหน้าต่างหรืแท็บจะมี sessionStorage แยกกัน

การใช้งาน

ใช้แบบ object ปกติ

let name = localStorage.username;         // Query a stored value.
if (!name) {
    name = prompt("What is your name?");  // Ask the user a question.
    localStorage.username = name;         // Store the user's response.
}
delete localStorage.username //Use delete operator

สามารถใช้ for/in หรือ Object.key() ได้

ใช้ผ่าน methods
  • clear()
  • getItem(keyName)
  • setItem(keyName, keyValue)
  • removeItem(keyName)
  • key(intIndex)
ถ้าต้องการเก็บค่าที่ไม่ใช่ String จะต้อง encode/decode เอง
// If you store a number, it is automatically converted to a string.
// Don't forget to parse it when retrieving it from storage.
localStorage.x = 10;
let x = parseInt(localStorage.x);
// Convert a Date to a string when setting, and parse it when getting
localStorage.lastRead = (new Date()).toUTCString();
let lastRead = new Date(Date.parse(localStorage.lastRead));
// JSON makes a convenient encoding for any primitive or data structure
localStorage.data = JSON.stringify(data);  // Encode and store
let data = JSON.parse(localStorage.data);  // Retrieve and decode.

Storage Event

เมื่อ Storage มีการเปลี่ยนแปลงจะเกิด Storage Event ขึ้นกับ window object ที่มองเห็น Storage แต่ window ที่เปลี่ยนค่าจะไม่ได้รับ event นี้ ดังนั้นเราจึงสามารถใช่ Storage เพื่อทำการ boardcast การเปลี่ยนแปลงได้

Window.addEventListener("storage", (event) => {});
Window.onstorage = (event) => {};

Comments

Popular posts from this blog

15.8.4 การวาดลงบน cavas

15.8.3 Graphics Attributes

Class ใน JavaScript, การสร้าง class ด้วย keyword class