Cache: addAll() 方法

Baseline 已廣泛支援

此功能已成熟,可跨多種裝置和瀏覽器版本工作。它自 ⁨2018 年 4 月⁩ 起已在所有瀏覽器中可用。

安全上下文: 此功能僅在安全上下文(HTTPS)中可用,且支援此功能的瀏覽器數量有限。

注意:此功能在 Web Workers 中可用。

Cache 介面的 addAll() 方法接受一個 URL 陣列,檢索它們,並將結果響應物件新增到給定的快取中。檢索過程中建立的請求物件成為儲存的響應操作的鍵。

注意: addAll() 會覆蓋快取中先前儲存的與請求匹配的任何鍵/值對,但如果由此產生的 put() 操作會覆蓋由同一個 addAll() 方法儲存的先前快取條目,則會失敗。

語法

js
addAll(requests)

引數

requests

要新增到快取的資源的請求陣列。這些可以是 Request 物件或 URL。

這些請求用作 Request() 建構函式的引數,因此 URL 遵循與該建構函式相同的規則。特別是,URL 可以相對於基礎 URL,在視窗上下文中是文件的 baseURI,在 worker 上下文中是 WorkerGlobalScope.location

返回值

一個 Promise,解析為 undefined

異常

TypeError

URL 方案不是 httphttps

Response 狀態不在 200 範圍內(即,不是成功的響應。)當請求未成功返回時會發生這種情況,但當請求是跨域無 CORS 請求時也會發生這種情況(在這種情況下,報告的狀態始終為 0。)

示例

此程式碼塊等待 InstallEvent 觸發,然後執行 waitUntil() 來處理應用程式的安裝過程。這包括呼叫 CacheStorage.open 來建立一個新的快取,然後使用 addAll() 將一系列資源新增到其中。

js
this.addEventListener("install", (event) => {
  event.waitUntil(
    caches
      .open("v1")
      .then((cache) =>
        cache.addAll([
          "/",
          "/index.html",
          "/style.css",
          "/app.js",
          "/image-list.js",
          "/star-wars-logo.jpg",
          "/gallery/",
          "/gallery/bountyHunters.jpg",
          "/gallery/myLittleVader.jpg",
          "/gallery/snowTroopers.jpg",
        ]),
      ),
  );
});

規範

規範
Service Workers
# cache-addAll

瀏覽器相容性

另見