HTML5有哪些儲存型別?它們之間有什麼區別?

王铁柱6發表於2024-11-27

HTML5 提供了以下幾種客戶端儲存型別:

  • localStorage: 用於持久化儲存資料,即使關閉瀏覽器或重啟電腦,資料仍然存在。除非手動清除或透過 JavaScript 程式碼刪除,否則資料將一直保留。

  • sessionStorage: 用於臨時儲存資料,僅在當前瀏覽器會話期間有效。關閉瀏覽器視窗或標籤頁後,資料將被清除。

  • Cookies: 最初用於在客戶端儲存少量資料,主要用於跟蹤使用者會話或儲存使用者偏好。Cookie 可以設定過期時間,使其在特定時間後失效。Cookie 會隨每個 HTTP 請求一起傳送到伺服器,因此不適合儲存大量資料。

  • IndexedDB: 用於儲存大量的結構化資料,類似於客戶端的資料庫。它支援事務、索引和查詢,適用於需要高效能和複雜資料管理的 Web 應用程式。

  • Web SQL Database: 這是一個已棄用的 API,用於在客戶端儲存關係型資料。它基於 SQL,但由於標準化方面的問題,不再推薦使用,並逐漸被 IndexedDB 取代。

下表總結了這些儲存型別的區別:

特性 localStorage sessionStorage Cookies IndexedDB Web SQL Database (已棄用)
儲存期限 持久化 會話 可設定過期時間,預設為會話 持久化 持久化
資料大小 ~5MB ~5MB ~4KB 通常較大,取決於瀏覽器實現 通常較大,取決於瀏覽器實現
資料型別 字串 字串 字串 JavaScript 物件,支援二進位制資料 關係型資料
資料訪問 同源 同源 可設定訪問許可權,例如跨域訪問 同源 同源
API 複雜度 簡單 簡單 相對簡單 較複雜 較複雜
用途 長期儲存 臨時儲存 使用者認證、跟蹤使用者行為、儲存少量使用者偏好 儲存大量結構化資料,例如離線應用 儲存關係型資料
傳送到伺服器

選擇合適的儲存型別:

  • 對於需要長期儲存的資料,例如使用者設定或應用程式狀態,使用 localStorage
  • 對於臨時資料,例如當前表單資料或購物車的臨時內容,使用 sessionStorage
  • 對於需要在客戶端和伺服器之間共享的小量資料,例如使用者認證資訊,使用 Cookies
  • 對於需要儲存大量結構化資料或構建離線 Web 應用程式,使用 IndexedDB
  • 避免使用 Web SQL Database,因為它已被棄用。

希望這個解釋能夠幫助你理解 HTML5 的不同儲存型別。

相關文章