พื้นที่เก็บข้อมูลถาวรจะช่วยป้องกันไม่ให้ข้อมูลสําคัญถูกนําออก และลดโอกาสที่ข้อมูลจะสูญหาย
เมื่อพบกับการใช้แรงกดดันในการจัดเก็บ เช่น พื้นที่ในดิสก์เหลือน้อย เบราว์เซอร์จะ ที่โดยปกติแล้วจะนำข้อมูลออก รวมถึงจาก Cache API และ IndexedDB จากต้นทางที่ใช้ล่าสุด ซึ่งอาจทำให้ข้อมูลสูญหายหากแอป ไม่ได้ซิงค์ข้อมูลกับเซิร์ฟเวอร์และลดความน่าเชื่อถือของแอปลงโดย การนำทรัพยากรที่จำเป็นต่อการทำงานของแอปออก ซึ่งทั้ง 2 อย่างนี้จะนำไปสู่ ประสบการณ์เชิงลบของผู้ใช้
โชคดีที่การวิจัยโดยทีม Chrome แสดงให้เห็นว่า ข้อมูลน้อยมาก ถูกล้างโดยอัตโนมัติโดย Chrome ผู้ใช้มักจะดำเนินการด้วยตนเอง ล้างพื้นที่เก็บข้อมูล ดังนั้น หากผู้ใช้เข้าชมเว็บไซต์ของคุณเป็นประจำ มีโอกาส มีขนาดเล็ก ข้อมูลของคุณจะถูกขับออก หากต้องการป้องกันไม่ให้เบราว์เซอร์ลบ คุณสามารถขอให้ทำเครื่องหมายพื้นที่เก็บข้อมูลของทั้งเว็บไซต์ ต่อเนื่อง
พื้นที่เก็บข้อมูลถาวรในเบราว์เซอร์สมัยใหม่ต่างๆ มากมาย
สำหรับดูข้อมูลเพิ่มเติมเกี่ยวกับการปลดออก พื้นที่เก็บข้อมูลที่สามารถจัดเก็บได้ และวิธีจัดการโควต้า โปรดดูพื้นที่เก็บข้อมูลสำหรับเว็บ
ตรวจสอบว่าพื้นที่เก็บข้อมูลของเว็บไซต์มีสถานะเป็นถาวรหรือไม่
คุณสามารถใช้ 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 สอบถามว่าจะอนุญาตหรือไม่ เพื่อเก็บข้อมูลไว้ในพื้นที่เก็บข้อมูลถาวร
พื้นที่เก็บข้อมูลใดได้รับการปกป้องด้วยพื้นที่เก็บข้อมูลถาวร
หากได้รับสิทธิ์พื้นที่เก็บข้อมูลถาวร เบราว์เซอร์จะไม่เพิกถอน ข้อมูลที่จัดเก็บใน:
- API แคช
- คุกกี้
- พื้นที่เก็บข้อมูล DOM (พื้นที่เก็บข้อมูลในเครื่อง)
- File System API (ระบบไฟล์ที่เบราว์เซอร์มาจากและแซนด์บ็อกซ์)
- IndexedDB
- Service Worker
- แคชของแอป (เลิกใช้งานแล้ว ไม่ควรใช้)
- WebSQL (เลิกใช้งานแล้ว ไม่ควรใช้)
วิธีปิดพื้นที่เก็บข้อมูลถาวร
ในขณะนี้ ไม่มีวิธีการแบบเป็นโปรแกรมที่จะบอกเบราว์เซอร์ว่าคุณ ต้องมีพื้นที่เก็บข้อมูลถาวร
บทสรุป
ผลการวิจัยจากทีม Chrome แสดงให้เห็นว่า แม้จะเป็นไปได้ แต่ข้อมูลที่จัดเก็บไว้ Chrome ไม่ค่อยถูกล้างโดยอัตโนมัติ เพื่อปกป้องข้อมูลสำคัญที่อาจ ไม่ถูกจัดเก็บไว้ในระบบคลาวด์ มิฉะนั้นข้อมูลจะสูญหายไปอย่างมาก พื้นที่เก็บข้อมูลถาวรเป็นเครื่องมือที่มีประโยชน์ เพื่อป้องกันไม่ให้ข้อมูล นำออกโดยเบราว์เซอร์เมื่ออุปกรณ์ภายในพบกับแรงกดดันในการจัดเก็บข้อมูล และโปรดทราบว่า ให้ขอพื้นที่เก็บข้อมูลถาวรเมื่อผู้ใช้มีแนวโน้มที่จะ อยากได้สวย
ขอขอบคุณ
ขอขอบคุณเป็นพิเศษจาก Victor Costan และ Joe Medley ที่อ่านบทความนี้ ขอขอบคุณ Chris Wilson ที่เขียนบทความต้นฉบับนี้ที่ ปรากฏครั้งแรกใน WebFundamentals
รูปภาพหลักโดย Umberto ใน Unsplash