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

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

บทความนี้ให้ข้อมูลสรุปสั้นๆ ในการประเมิน API พื้นที่เก็บข้อมูลและบริการต่างๆ หลังจากนั้น เราจะแสดงตารางเปรียบเทียบและคำแนะนำทั่วไปบางส่วน ในอนาคตอันใกล้นี้ เราวางแผนที่จะเพิ่มแหล่งข้อมูลเพื่อทำความเข้าใจหัวข้อพื้นที่เก็บข้อมูลที่เลือกให้ละเอียดยิ่งขึ้น

การจัดหมวดหมู่พื้นที่เก็บข้อมูล

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

โมเดลข้อมูล

โมเดลสำหรับการจัดเก็บหน่วยข้อมูลจะกำหนดวิธีการจัดระเบียบข้อมูลเป็นการภายใน ซึ่งส่งผลต่อการใช้งาน ค่าใช้จ่าย และประสิทธิภาพของคำขอจัดเก็บข้อมูลและดึงข้อมูล

  • มีโครงสร้าง: ข้อมูลที่จัดเก็บไว้ในตารางซึ่งมีช่องที่กำหนดไว้ล่วงหน้า (ตามปกติของระบบการจัดการฐานข้อมูลที่ใช้ SQL) เหมาะกับการค้นหาที่ยืดหยุ่นและแบบไดนามิก ซึ่งอาจไม่รู้จักประเภทคำค้นหาทั้งหมด ตัวอย่างที่เห็นได้ชัดของพื้นที่เก็บข้อมูลที่มีโครงสร้างในเบราว์เซอร์คือ IndexedDB

  • คีย์/ค่า: พื้นที่เก็บข้อมูลคีย์/ค่า และฐานข้อมูล NoSQL ที่เกี่ยวข้องทำให้สามารถจัดเก็บและเรียกข้อมูลที่ไม่มีโครงสร้างซึ่งจัดทำดัชนีโดยคีย์ที่ไม่ซ้ำกันได้ พื้นที่เก็บข้อมูลคีย์/ค่าเป็นเหมือนตารางแฮชตรงที่ช่วยให้สามารถเข้าถึงข้อมูลที่คลุมเครือซึ่งจัดทำดัชนีได้ตลอดเวลาอย่างต่อเนื่อง ตัวอย่างที่เห็นได้ชัดเจนของพื้นที่เก็บข้อมูลคีย์/ค่า ได้แก่ Cache API ในเบราว์เซอร์และ Apache Cassandra บนเซิร์ฟเวอร์

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

ความต่อเนื่อง

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

  • ความต่อเนื่องของเซสชัน: ข้อมูลในหมวดหมู่นี้จะเก็บไว้ตราบเท่าที่มีเซสชันเว็บหรือแท็บเบราว์เซอร์เดียวเท่านั้นที่ยังคงใช้งานอยู่ ตัวอย่างกลไกพื้นที่เก็บข้อมูลที่มีความต่อเนื่องของเซสชันคือ Session Storage API

  • ความต่อเนื่องของอุปกรณ์: ข้อมูลในหมวดหมู่นี้จะเก็บไว้ในเซสชันและแท็บ/หน้าต่างเบราว์เซอร์ภายในอุปกรณ์หนึ่งๆ ตัวอย่างกลไกพื้นที่เก็บข้อมูลที่มีความต่อเนื่องของอุปกรณ์คือ Cache API

  • ความต่อเนื่องทั่วโลก: ข้อมูลในหมวดหมู่นี้จะเก็บไว้ในเซสชันและอุปกรณ์ต่างๆ ด้วยเหตุนี้ จึงเป็นรูปแบบการเก็บข้อมูลที่มีประสิทธิภาพมากที่สุด ตัวอย่างของกลไกพื้นที่เก็บข้อมูลที่มีความต่อเนื่องทั่วโลกคือ Google Cloud Storage

การสนับสนุนเบราว์เซอร์

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

ธุรกรรม

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

ซิงค์/ไม่พร้อมกัน

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

การแก้ไขข้อบกพร่องพื้นที่เก็บข้อมูลในเครื่องมือสำหรับนักพัฒนาเว็บใน Chrome

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

หากคุณใช้ API พื้นที่เก็บข้อมูลหลายรายการ โปรดลองใช้ฟีเจอร์ "ล้างพื้นที่เก็บข้อมูล" ของ DevTools ฟีเจอร์นี้ช่วยให้คุณล้างร้านค้าหลายร้านได้ด้วยการคลิกปุ่มเพียงครั้งเดียว โปรดดูข้อมูลเพิ่มเติมที่หัวข้อล้าง Service Worker, พื้นที่เก็บข้อมูล, ฐานข้อมูล และแคช

ไปไหนต่อ...

หลังจากได้ทบทวนวิธีที่เกี่ยวข้องในการคิดเกี่ยวกับกลไกการจัดเก็บข้อมูล และเปรียบเทียบ API และบริการที่ได้รับความนิยมสูงสุดในปัจจุบันแล้ว เราจะเพิ่มเนื้อหาเข้าไปอีกในเร็วๆ นี้ เพื่อเจาะลึกเกี่ยวกับหัวข้อที่สนใจอย่างน้อย 1 หัวข้อ