พื้นที่เก็บข้อมูลถาวร

พื้นที่เก็บข้อมูลถาวรจะช่วยป้องกันไม่ให้ข้อมูลสําคัญถูกนําออก และลดโอกาสที่ข้อมูลจะสูญหาย

เมื่อพบกับการใช้แรงกดดันในการจัดเก็บ เช่น พื้นที่ในดิสก์เหลือน้อย เบราว์เซอร์จะ ที่โดยปกติแล้วจะนำข้อมูลออก รวมถึงจาก Cache API และ IndexedDB จากต้นทางที่ใช้ล่าสุด ซึ่งอาจทำให้ข้อมูลสูญหายหากแอป ไม่ได้ซิงค์ข้อมูลกับเซิร์ฟเวอร์และลดความน่าเชื่อถือของแอปลงโดย การนำทรัพยากรที่จำเป็นต่อการทำงานของแอปออก ซึ่งทั้ง 2 อย่างนี้จะนำไปสู่ ประสบการณ์เชิงลบของผู้ใช้

โชคดีที่การวิจัยโดยทีม Chrome แสดงให้เห็นว่า ข้อมูลน้อยมาก ถูกล้างโดยอัตโนมัติโดย Chrome ผู้ใช้มักจะดำเนินการด้วยตนเอง ล้างพื้นที่เก็บข้อมูล ดังนั้น หากผู้ใช้เข้าชมเว็บไซต์ของคุณเป็นประจำ มีโอกาส มีขนาดเล็ก ข้อมูลของคุณจะถูกขับออก หากต้องการป้องกันไม่ให้เบราว์เซอร์ลบ คุณสามารถขอให้ทำเครื่องหมายพื้นที่เก็บข้อมูลของทั้งเว็บไซต์ ต่อเนื่อง

พื้นที่เก็บข้อมูลถาวรในเบราว์เซอร์สมัยใหม่ต่างๆ มากมาย

การรองรับเบราว์เซอร์

  • Chrome: 55.
  • ขอบ: 79
  • Firefox: 57
  • Safari: 15.2

แหล่งที่มา

สำหรับดูข้อมูลเพิ่มเติมเกี่ยวกับการปลดออก พื้นที่เก็บข้อมูลที่สามารถจัดเก็บได้ และวิธีจัดการโควต้า โปรดดูพื้นที่เก็บข้อมูลสำหรับเว็บ

ตรวจสอบว่าพื้นที่เก็บข้อมูลของเว็บไซต์มีสถานะเป็นถาวรหรือไม่

คุณสามารถใช้ JavaScript เพื่อระบุว่ามีการทำเครื่องหมายพื้นที่เก็บข้อมูลของเว็บไซต์หรือไม่ เป็นแบบคงอยู่ตลอดไป การเรียกใช้ navigator.storage.persisted() จะแสดงคำสัญญาว่า แก้ไขด้วยบูลีนเพื่อระบุว่าพื้นที่เก็บข้อมูลมีการทำเครื่องหมายเป็น อยู่

// Check if site's storage has been marked as persistent
if (navigator.storage && navigator.storage.persist) {
  const isPersisted = await navigator.storage.persisted();
  console.log(`Persisted storage granted: ${isPersisted}`);
}

ฉันควรขอพื้นที่เก็บข้อมูลถาวรเมื่อใด

เวลาที่เหมาะสมที่สุดในการขอให้ทำเครื่องหมายพื้นที่เก็บข้อมูลของคุณเป็น "ถาวร" คือตอนที่คุณ บันทึกข้อมูลผู้ใช้ที่สำคัญ และควรรวมคำขอไว้ในผู้ใช้ ท่าทางสัมผัส อย่าขอพื้นที่เก็บข้อมูลถาวรเมื่อโหลดหน้าเว็บหรือใน Bootstrap อื่นๆ เบราว์เซอร์อาจแจ้งให้ผู้ใช้อนุญาต หากผู้ใช้ ไม่ได้ทำอะไรที่พวกเขาคิดว่าจำเป็นต้องบันทึก ข้อความแจ้งอาจ ทำให้เกิดความสับสน และมีแนวโน้ม ที่พวกเขาจะปฏิเสธคำขอ นอกจากนี้ โปรดอย่าแสดงข้อความแจ้ง บ่อยเกินไป หากผู้ใช้ตัดสินใจที่จะไม่ให้อนุญาต ก็ไม่ต้องดำเนินการโดยทันที อีกครั้งในการบันทึกครั้งต่อไป

ขอพื้นที่เก็บข้อมูลถาวร

หากต้องการขอพื้นที่เก็บข้อมูลถาวรสำหรับข้อมูลของเว็บไซต์ โปรดเรียกใช้ navigator.storage.persist() โดยจะแสดงคำสัญญาที่แก้ไขด้วย บูลีนเพื่อระบุว่าได้รับสิทธิ์พื้นที่เก็บข้อมูลถาวรหรือไม่

// Request persistent storage for site
if (navigator.storage && navigator.storage.persist) {
  const isPersisted = await navigator.storage.persist();
  console.log(`Persisted storage granted: ${isPersisted}`);
}

มีการให้สิทธิ์อย่างไรบ้าง

พื้นที่เก็บข้อมูลถาวรจะถือเป็นสิทธิ์ เบราว์เซอร์ใช้ ปัจจัยต่างๆ ในการตัดสินใจว่าจะให้สิทธิ์พื้นที่เก็บข้อมูลถาวรหรือไม่

Chrome และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium

Chrome และเบราว์เซอร์อื่นๆ ที่ใช้ Chromium ส่วนใหญ่จะจัดการ และไม่แสดงข้อความแจ้งแก่ผู้ใช้ แต่ถ้า ถือได้ว่ามีความสำคัญ สิทธิ์สำหรับพื้นที่เก็บข้อมูลถาวรคือ ให้สิทธิ์โดยอัตโนมัติ มิฉะนั้นระบบจะปฏิเสธโดยไม่มีการแจ้งเตือน

การประเมินตนเองที่ใช้ในการพิจารณาว่าเว็บไซต์นั้นๆ สำคัญหรือไม่ มีดังนี้

  • ระดับการมีส่วนร่วมกับเว็บไซต์สูงเพียงใด
  • ติดตั้งหรือทำบุ๊กมาร์กไซต์แล้วหรือยัง
  • เว็บไซต์ได้รับสิทธิ์ในการแสดงการแจ้งเตือนหรือไม่

หากคำขอถูกปฏิเสธ คุณจะขอได้อีกครั้งในภายหลังและจะดำเนินการต่อไปนี้ ประเมินโดยใช้วิธีการเดียวกัน

Firefox

Firefox มอบสิทธิ์การขอสิทธิ์ให้กับผู้ใช้ เมื่อพื้นที่เก็บข้อมูลถาวร ข้อความจะแจ้งให้ผู้ใช้ที่มีป๊อปอัป UI สอบถามว่าจะอนุญาตหรือไม่ เพื่อเก็บข้อมูลไว้ในพื้นที่เก็บข้อมูลถาวร

วันที่ ป๊อปอัปที่ Firefox แสดงเมื่อเว็บไซต์ขอพื้นที่เก็บข้อมูลถาวร
ป๊อปอัปที่ Firefox แสดงเมื่อเว็บไซต์ขอพื้นที่เก็บข้อมูลถาวร

พื้นที่เก็บข้อมูลใดได้รับการปกป้องด้วยพื้นที่เก็บข้อมูลถาวร

หากได้รับสิทธิ์พื้นที่เก็บข้อมูลถาวร เบราว์เซอร์จะไม่เพิกถอน ข้อมูลที่จัดเก็บใน:

  • API แคช
  • คุกกี้
  • พื้นที่เก็บข้อมูล DOM (พื้นที่เก็บข้อมูลในเครื่อง)
  • File System API (ระบบไฟล์ที่เบราว์เซอร์มาจากและแซนด์บ็อกซ์)
  • IndexedDB
  • Service Worker
  • แคชของแอป (เลิกใช้งานแล้ว ไม่ควรใช้)
  • WebSQL (เลิกใช้งานแล้ว ไม่ควรใช้)

วิธีปิดพื้นที่เก็บข้อมูลถาวร

ในขณะนี้ ไม่มีวิธีการแบบเป็นโปรแกรมที่จะบอกเบราว์เซอร์ว่าคุณ ต้องมีพื้นที่เก็บข้อมูลถาวร

บทสรุป

ผลการวิจัยจากทีม Chrome แสดงให้เห็นว่า แม้จะเป็นไปได้ แต่ข้อมูลที่จัดเก็บไว้ Chrome ไม่ค่อยถูกล้างโดยอัตโนมัติ เพื่อปกป้องข้อมูลสำคัญที่อาจ ไม่ถูกจัดเก็บไว้ในระบบคลาวด์ มิฉะนั้นข้อมูลจะสูญหายไปอย่างมาก พื้นที่เก็บข้อมูลถาวรเป็นเครื่องมือที่มีประโยชน์ เพื่อป้องกันไม่ให้ข้อมูล นำออกโดยเบราว์เซอร์เมื่ออุปกรณ์ภายในพบกับแรงกดดันในการจัดเก็บข้อมูล และโปรดทราบว่า ให้ขอพื้นที่เก็บข้อมูลถาวรเมื่อผู้ใช้มีแนวโน้มที่จะ อยากได้สวย

ขอขอบคุณ

ขอขอบคุณเป็นพิเศษจาก Victor Costan และ Joe Medley ที่อ่านบทความนี้ ขอขอบคุณ Chris Wilson ที่เขียนบทความต้นฉบับนี้ที่ ปรากฏครั้งแรกใน WebFundamentals

รูปภาพหลักโดย Umberto ใน Unsplash