Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ซอฟต์แวร์ >> เบราว์เซอร์

เชี่ยวชาญ Browser Storage: localStorage vs sessionStorage ความแตกต่างและการใช้งาน

จัดการข้อมูล Web App ไม่จำเป็นต้องมี Database เสมอไป Browser Storage รองรับ Chrome 4+, Firefox 3.5+, IE 8+ และ Mobile Browsers

สองตัวเลือกหลัก

localStorage

ข้อมูลคงอยู่แม้ปิด Browser แล้วก็ตาม (Persistent)

  • Save: localStorage.setItem("key", "value")
  • Get: localStorage.getItem("key")
  • Remove: localStorage.removeItem("key")
  • Clear All: localStorage.clear()

sessionStorage

ข้อมูลอยู่จนกว่าจะปิด Browser/Tab (Session-only)

  • Save: sessionStorage.setItem("key", "value")
  • Get: sessionStorage.getItem("key")
  • Remove: sessionStorage.removeItem("key")
  • Clear All: sessionStorage.clear()

เก็บ Array ลง Storage

ไม่เก็บ Array ตรงๆ ได้ ต้องแปลงเป็น String ก่อนด้วย JSON.stringify()

var ourArray = [1,2,3,4,5];

// Save
localStorage.setItem("ourArrayKey", JSON.stringify(ourArray));
// หรือ
sessionStorage.setItem("ourArrayKey", JSON.stringify(ourArray));

// Retrieve & Parse กลับเป็น Array
var storedArray = localStorage.getItem("ourArrayKey");
ourArray = JSON.parse(storedArray);

// หรือ sessionStorage
var storedArray = sessionStorage.getItem("ourArrayKey");
ourArray = JSON.parse(storedArray);

สรุปความแตกต่าง

คุณสมบัติlocalStoragesessionStorage
อายุข้อมูลถาวร (จนกว่าจะลบ)จนกว่าจะปิด Tab/Browser
ขอบเขต (Scope)Origin (Domain + Port + Protocol)Origin + Tab/Window (แยกกันต่อ Tab)
ขนาด~5-10MB~5-10MB
ส่งไป Serverไม่ (Client-side only)ไม่ (Client-side only)

เมื่อไหร่ควรใช้ไหน?

  • localStorage: Preferences, Theme, Token, Cache ข้อมูลที่ต้องคงอยู่
  • sessionStorage: Form Data ชั่วคราว, Multi-step Wizard, Sensitive Data ที่อยากหายเมื่อปิด Tab