搭配使用儲存空間值區的索引資料庫效能上限

Chrome 團隊不只改善了瀏覽器效能 IndexedDB (IDB) 的實作。其中一項改善是 將每個例項的備份儲存庫保留至不同的序列 (您可以將 一般的獨立執行緒)。這代表並行使用 IDB 執行速度更快,無論是來自相同網站或跨網站。這則貼文 以及要怎麼運用這種遷移方式 請前往 Chrome 126

跨網站

如果您使用 IDB 是跨網站的使用方式,則無須採取任何行動。將此 已進行瀏覽器層級遷移,且每個 IDB 執行個體的備份儲存庫都是 移至個別序列 能夠獲得優異成效 什麼都不做

同網站

如要達到相同網站的使用情況,您需要區隔 將 IDB 用量匯入不同執行個體 儲存空間值區。以下程式碼範例 其運作方式如下:

const request = indexedDB.open('main', 1);
request.onsuccess = (event) => {
  /* Do stuff with the main instance. */
};

// By default, just use the regular IDB instance.
let idb = indexedDB;
// Open a separate storage bucket if the API is supported.
if ('storageBuckets' in navigator) {
  const bucket = await navigator.storageBuckets.open('logs-bucket');
  // Get access to the storage bucket's IDB instance.
  idb = bucket.indexedDB;
}
const bucketRequest = idb.open('logs', 1);
bucketRequest.onsuccess = (event) => {
  /* Do stuff with the separate instance. */
};

瀏覽器支援

這篇文章提到的成效增幅是一種漸進式強化, 若瀏覽器支援 Storage Buckets API,您就能使用這個 API (來自 Chrome 122),以及為 IDB 執行個體進行資料分割時,從 Chrome 126 開始。

示範

如要查看這項功能的示範影片,請參閱這篇文章: 毛刺。原始碼會顯示 上一個程式碼片段的實際概念請務必仔細遵守 畫面中的操作說明使用 Chrome 檢查 IDB 執行個體時 您可以透過開發人員工具的「值區名稱」部分,查看已使用的儲存空間值區, 在下方螢幕截圖中以紅色方塊醒目顯示。

Chrome 開發人員工具正在檢查 IndexedDB 部分。有兩個記錄檔資料庫,即 Storage 值區名稱

特別銘謝

這則貼文是由 審核 Evan StadeRachel Andrew