網站儲存空間總覽

Marc Cohen

請務必針對本機裝置儲存空間和以雲端為基礎的伺服器儲存空間選擇合適的儲存機制。優質的儲存引擎可確保資訊可靠地儲存、減少頻寬並改善回應速度。適當的儲存空間快取策略是啟用離線行動網路體驗的核心構成要素。

本文提供評估儲存空間 API 和服務的基本基礎,之後我們會提供比較資料表和一些一般指引。在不久的未來,我們計劃新增資源,以便更深入地瞭解所選儲存空間主題。

儲存空間分類

首先,我們來認識可用來分析網頁應用程式資料儲存空間的一些維度。稍後,我們將使用這個架構,列舉及評估網頁開發人員可用的許多儲存空間選項。

資料模型

用來儲存資料單位的模型會決定資料在內部的組織方式,這會影響儲存和擷取要求的易用性、成本及效能。

  • 結構化:儲存在具有預先定義欄位的資料表中的資料,如同 SQL 式資料庫管理系統的一般做法,非常適合彈性和動態查詢,這類查詢類型不一定能夠得知。IndexedDB 是瀏覽器中結構化資料儲存庫的重要範例。

  • 鍵/值:鍵/值資料儲存庫和相關 NoSQL 資料庫,可讓您儲存及擷取由專屬索引鍵建立索引的非結構化資料。鍵/值資料儲存庫與雜湊資料表類似,可讓您持續存取已編入索引的不透明資料。瀏覽器的 Cache API 和伺服器上的 Apache Cassandra 是明顯的鍵/值資料儲存庫。

  • 位元組串流:這個簡單的模型會以可變長度、不透明位元組字串的形式儲存資料,讓任何形式的內部機構傳送至應用程式層。這個模型特別適合檔案系統及其他階層式排列的資料 blob。位元組串流資料儲存庫的顯眼範例包括檔案系統和雲端儲存服務。

保留

可依資料保存的範圍進行分析,分析網頁應用程式的儲存方法。

  • 工作階段持續性:只要單一網頁工作階段或瀏覽器分頁保持有效狀態,系統就會保留這個類別的資料。Session Storage API 是一種儲存機制與工作階段持續性機制的例子。

  • 裝置持續性:在特定裝置上,系統會在工作階段和瀏覽器分頁/視窗之間保留這個類別中的資料。Cache API 是具有裝置持續性儲存機制的一個例子。

  • 全域持續性:系統會在各個工作階段和裝置中保留這個類別中的資料。因此,這是最可靠的資料持續形式。Google Cloud Storage 是具有全域持續性儲存機制的一個範例。

瀏覽器支援

開發人員應選擇最適合自身問題網域的 API,但他們也應考量,標準化和完善可靠的 API 較偏好自訂介面或專屬介面,因為這類 API 的存續時間較久,支援範圍更廣。他們或許還能探索更多知識庫,並擁有更豐富的開發人員生態系統。

交易

通常,有關相關儲存作業的集合,才能以不可分割的形式實現或失敗。資料庫管理系統通常是使用交易模型來支援這項功能,相關更新可分成任意單位。雖然這在某些問題領域中並非必要,但有時也是必須採用的功能。

同步處理/非同步

有些儲存空間 API 是同步的,因為儲存或擷取要求會封鎖目前使用中的執行緒,直到要求完成為止。在網路瀏覽器中尤其重要,因為儲存空間要求是與 UI 共用主執行緒。基於效率和效能考量,建議使用非同步儲存 API。

Chrome 開發人員工具中的儲存空間偵錯

請參閱下列文件,進一步瞭解如何使用 Chrome 開發人員工具檢查所選 Web Storage API 並進行偵錯。開發人員工具中未提及的 API 或不適用,

如果使用多個儲存空間 API,請查看開發人員工具的「清除儲存空間」功能。透過這項功能,只要按一下按鈕,即可清除多個商店。詳情請參閱「清除 Service Worker、儲存空間、資料庫和快取」。

後續步驟...

在討論完儲存空間機制的相關考量,並比較目前市面上最熱門的 API 和服務後,我們很快就會新增更多內容,深入探討一或多個感興趣的主題: