From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- files/ja/web/api/cachestorage/delete/index.html | 86 +++++++++++ files/ja/web/api/cachestorage/has/index.html | 84 ++++++++++ files/ja/web/api/cachestorage/index.html | 196 ++++++++++++++++++++++++ files/ja/web/api/cachestorage/keys/index.html | 83 ++++++++++ files/ja/web/api/cachestorage/match/index.html | 117 ++++++++++++++ files/ja/web/api/cachestorage/open/index.html | 94 ++++++++++++ 6 files changed, 660 insertions(+) create mode 100644 files/ja/web/api/cachestorage/delete/index.html create mode 100644 files/ja/web/api/cachestorage/has/index.html create mode 100644 files/ja/web/api/cachestorage/index.html create mode 100644 files/ja/web/api/cachestorage/keys/index.html create mode 100644 files/ja/web/api/cachestorage/match/index.html create mode 100644 files/ja/web/api/cachestorage/open/index.html (limited to 'files/ja/web/api/cachestorage') diff --git a/files/ja/web/api/cachestorage/delete/index.html b/files/ja/web/api/cachestorage/delete/index.html new file mode 100644 index 0000000000..da3b6ea223 --- /dev/null +++ b/files/ja/web/api/cachestorage/delete/index.html @@ -0,0 +1,86 @@ +--- +title: CacheStorage.delete() +slug: Web/API/CacheStorage/delete +tags: + - API + - CacheStorage + - Experimental + - Method + - Reference + - Service Workers + - ServiceWorker + - delete +translation_of: Web/API/CacheStorage/delete +--- +

{{APIRef("Service Workers API")}}

+ +

{{domxref("CacheStorage")}} インターフェイスの delete() メソッドは、cacheName に一致する {{domxref("Cache")}} オブジェクトを見つけ、見つかった場合は {{domxref("Cache")}} オブジェクトを削除し、true に解決される {{jsxref("Promise")}} を返します。 {{domxref("Cache")}} オブジェクトが見つからない場合、false に解決されます。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +

構文

+ +
caches.delete(cacheName).then(function(boolean) {
+  // キャッシュが削除されました
+});
+
+ +

パラメーター

+ +
+
cacheName
+
削除するキャッシュの名前。
+
+ +

戻り値

+ +

{{domxref("Cache")}} オブジェクトが見つかって削除された場合は true、そうでない場合は false に解決される {{jsxref("Promise")}}。

+ +

+ +

このコードスニペットでは、activate イベントを待機してから、新しいサービスワーカーがアクティブになる前に、古い未使用のキャッシュをクリアする {{domxref("ExtendableEvent.waitUntil","waitUntil()")}} ブロックを実行します。 ここに、保持したいキャッシュ名の配列(cachesToKeep)があります。 {{domxref("CacheStorage.keys")}} を使用して {{domxref("CacheStorage")}} オブジェクトのキャッシュのキーを返し、各キーをチェックしてその配列内にあるかどうかを確認します。 ない場合は、delete() を使用して削除します。

+ +
this.addEventListener('activate', function(event) {
+  var cachesToKeep = ['v2'];
+
+  event.waitUntil(
+    caches.keys().then(function(keyList) {
+      return Promise.all(keyList.map(function(key) {
+        if (cachesToKeep.indexOf(key) === -1) {
+          return caches.delete(key);
+        }
+      }));
+    })
+  );
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#cache-storage-delete', 'CacheStorage: delete')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage.delete")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/cachestorage/has/index.html b/files/ja/web/api/cachestorage/has/index.html new file mode 100644 index 0000000000..e724073c44 --- /dev/null +++ b/files/ja/web/api/cachestorage/has/index.html @@ -0,0 +1,84 @@ +--- +title: CacheStorage.has() +slug: Web/API/CacheStorage/has +tags: + - API + - CacheStorage + - Experimental + - Method + - Reference + - Service Workers + - ServiceWorker + - has +translation_of: Web/API/CacheStorage/has +--- +

{{APIRef("Service Workers API")}}

+ +

{{domxref("CacheStorage")}} インターフェイスの has() メソッドは、{{domxref("Cache")}} オブジェクトが cacheName と一致する場合に true に解決される {{jsxref("Promise")}} を返します。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +

構文

+ +
caches.has(cacheName).then(function(boolean) {
+  // true: キャッシュが存在します!
+});
+
+ +

パラメーター

+ +
+
cacheName
+
 {{domxref("CacheStorage")}} で探している {{domxref("Cache")}} オブジェクトの名前を表す {{domxref("DOMString")}}。
+
+ +

戻り値

+ +

キャッシュが存在する場合は true、存在しない場合は false に解決される {{jsxref("Promise")}}。

+ +

+ +

次の例では、最初に 'v1' というキャッシュが存在するかどうかを確認します。 その場合、アセットのリストを追加します。 そうでない場合、何らかのキャッシュセットアップ関数を実行します。

+ +
caches.has('v1').then(function(hasCache) {
+  if (!hasCache) {
+    someCacheSetupfunction();
+  } else {
+    caches.open('v1').then(function(cache) {
+      return cache.addAll(myAssets);
+    });
+  }
+}).catch(function() {
+  // ここで例外を処理します。
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#cache-storage-has', 'CacheStorage: has')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage.has")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/cachestorage/index.html b/files/ja/web/api/cachestorage/index.html new file mode 100644 index 0000000000..747e2d6462 --- /dev/null +++ b/files/ja/web/api/cachestorage/index.html @@ -0,0 +1,196 @@ +--- +title: CacheStorage +slug: Web/API/CacheStorage +tags: + - API + - CacheStorage + - Experimental + - Interface + - Reference + - Service Workers + - ServiceWorker +translation_of: Web/API/CacheStorage +--- +

{{APIRef("Service Workers API")}}

+ +

CacheStorage インターフェイスは、{{domxref("Cache")}} オブジェクトのストレージを表します。

+ +

このインターフェイスは、

+ + + +

{{domxref("CacheStorage.open()")}} を使用して、{{domxref("Cache")}} インスタンスを取得します。

+ +

{{domxref("CacheStorage.match()")}} を使用して、所与の {{domxref("Request")}} が CacheStorage オブジェクトが追跡する {{domxref("Cache")}} オブジェクトのキーであるかどうかを確認します。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +
: CacheStorage は、信頼されていないオリジン(つまり、この定義は将来より複雑になる可能性がありますが、HTTPS を使用しないオリジン)で SecurityError で常に拒否します。 テストするときは、 Firefox 開発ツールの設定/歯車印メニューの「HTTP による Service Worker を有効化(ツールボックスを開いた時)」オプションをチェックすることで、この問題を回避できます。
+ +
: {{domxref("CacheStorage.match()")}} は便利なメソッドです。 キャッシュエントリと一致する同等の機能を実装するには、{{domxref("CacheStorage.keys()")}} からキャッシュ名の配列を返し、{{domxref("CacheStorage.open()")}} で各キャッシュを開き、{{domxref("Cache.match()")}} で必要なものと一致させます。
+ +

メソッド

+ +
+
{{domxref("CacheStorage.match()")}}
+
所与の {{domxref("Request")}} が、{{domxref("CacheStorage")}} オブジェクトが追跡する {{domxref("Cache")}} オブジェクトのキーであるかどうかを確認し、その一致で解決する {{jsxref("Promise")}} を返します。
+
{{domxref("CacheStorage.has()")}}
+
cacheName に一致する {{domxref("Cache")}} オブジェクトが存在する場合、true に解決される {{jsxref("Promise")}} を返します。
+
{{domxref("CacheStorage.open()")}}
+
cacheName に一致する {{domxref("Cache")}} オブジェクトに解決される {{jsxref("Promise")}} を返します(まだ存在しない場合は新しいキャッシュが作成されます)。
+
{{domxref("CacheStorage.delete()")}}
+
cacheName に一致する {{domxref("Cache")}} オブジェクトを見つけ、見つかった場合は {{domxref("Cache")}} オブジェクトを削除し、true に解決される {{jsxref("Promise")}} を返します。 {{domxref("Cache")}} オブジェクトが見つからない場合、false に解決されます。
+
{{domxref("CacheStorage.keys()")}}
+
{{domxref("CacheStorage")}} によって追跡されるすべての名前付き {{domxref("Cache")}} オブジェクトに対応する文字列を含む配列で解決される {{jsxref("Promise")}} を返します。 このメソッドを使用して、すべての {{domxref("Cache")}} オブジェクトのリストを反復処理します。
+
+ +

+ +

このコードスニペットは、MDN の sw-test の例からのものです(sw-test をライブで見る)。 このサービスワーカーのスクリプトは、{{domxref("InstallEvent")}} が発生するのを待ち、{{domxref("ExtendableEvent.waitUntil","waitUntil")}} を実行してアプリのインストールプロセスを処理します。 これは、{{domxref("CacheStorage.open")}} を呼び出して新しいキャッシュを作成し、{{domxref("Cache.addAll")}} を使用して一連のアセットを追加することで構成されます。

+ +

2番目のコードブロックでは、{{domxref("FetchEvent")}} が発生するのを待ちます。 次のようなカスタムレスポンスを作成します。

+ +
    +
  1. CacheStorage でリクエストに一致するものが見つかったかどうかを確認します。 もしそうなら、それを提供します。
  2. +
  3. そうでない場合は、ネットワークからリクエストを取得し、最初のブロックで作成されたキャッシュも開き、{{domxref("Cache.put")}}(cache.put(event.request, response.clone()))を使用してリクエストのクローンを追加します。
  4. +
  5. これが失敗した場合(例えば、ネットワークがダウンしているため)、フォールバックレスポンスを返します。
  6. +
+ +

最後に、{{domxref("FetchEvent.respondWith")}} を使用して、カスタムレスポンスが等しくなったものをすべて返します。

+ +
self.addEventListener('install', function(event) {
+  event.waitUntil(
+    caches.open('v1').then(function(cache) {
+      return cache.addAll([
+        '/sw-test/',
+        '/sw-test/index.html',
+        '/sw-test/style.css',
+        '/sw-test/app.js',
+        '/sw-test/image-list.js',
+        '/sw-test/star-wars-logo.jpg',
+        '/sw-test/gallery/bountyHunters.jpg',
+        '/sw-test/gallery/myLittleVader.jpg',
+        '/sw-test/gallery/snowTroopers.jpg'
+      ]);
+    })
+  );
+});
+
+self.addEventListener('fetch', function(event) {
+  event.respondWith(caches.match(event.request).then(function(response) {
+    // caches.match() は常に解決します
+    // ただし、成功の場合はレスポンスに値があります
+    if (response !== undefined) {
+      return response;
+    } else {
+      return fetch(event.request).then(function (response) {
+        // レスポンスは1回のみ使用できます
+        // クローンを保存して、1番目のコピーをキャッシュに入れ、
+        // 2番目のコピーを提供する必要があります
+        let responseClone = response.clone();
+
+        caches.open('v1').then(function (cache) {
+          cache.put(event.request, responseClone);
+        });
+        return response;
+      }).catch(function () {
+        return caches.match('/sw-test/gallery/myLittleVader.jpg');
+      });
+    }
+  }));
+});
+
+ +

このスニペットは、サービスワーカーのコンテキストの外部で API を使用する方法を示しており、`await` 演算子を使用してより読みやすいコードにしています。

+ +
// キャッシュからデータを取得しようとしますが、フォールバックしてライブで取得します。
+async function getData() {
+   const cacheVersion = 1;
+   const cacheName    = `myapp-${ cacheVersion }`;
+   const url          = 'https://jsonplaceholder.typicode.com/todos/1';
+   let cachedData     = await getCachedData( cacheName, url );
+
+   if ( cachedData ) {
+      console.log( '取得したキャッシュデータ' );
+      return cachedData;
+   }
+
+   console.log( '最新データの取得' );
+
+   const cacheStorage = await caches.open( cacheName );
+   await cacheStorage.add( url );
+   cachedData = await getCachedData( cacheName, url );
+   await deleteOldCaches( cacheName );
+
+   return cachedData;
+}
+
+// キャッシュからデータを取得します。
+async function getCachedData( cacheName, url ) {
+   const cacheStorage   = await caches.open( cacheName );
+   const cachedResponse = await cacheStorage.match( url );
+
+   if ( ! cachedResponse || ! cachedResponse.ok ) {
+      return false;
+   }
+
+   return await cachedResponse.json();
+}
+
+// 古いキャッシュを削除して、ユーザーのディスク容量を尊重します。
+async function deleteOldCaches( currentCache ) {
+   const keys = await caches.keys();
+
+   for ( const key of keys ) {
+      const isOurCache = 'myapp-' === key.substr( 0, 6 );
+
+      if ( currentCache === key || ! isOurCache ) {
+         continue;
+      }
+
+      caches.delete( key );
+   }
+}
+
+try {
+   const data = await getData();
+   console.log( { data } );
+} catch ( error ) {
+   console.error( { error } );
+}
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#cachestorage', 'CacheStorage')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/cachestorage/keys/index.html b/files/ja/web/api/cachestorage/keys/index.html new file mode 100644 index 0000000000..02311df3a8 --- /dev/null +++ b/files/ja/web/api/cachestorage/keys/index.html @@ -0,0 +1,83 @@ +--- +title: CacheStorage.keys() +slug: Web/API/CacheStorage/keys +tags: + - API + - CacheStorage + - Method + - Reference + - Service Workers + - Service worker API + - ServiceWorker + - keys +translation_of: Web/API/CacheStorage/keys +--- +

{{APIRef("Service Workers API")}}

+ +

{{domxref("CacheStorage")}} インターフェイスの keys() メソッドは、{{domxref("CacheStorage")}} オブジェクトによって追跡されるすべての名前付き {{domxref("Cache")}} オブジェクトに対応する文字列をそれが作成された順番で含む配列で解決する {{jsxref("Promise")}} を返します。 このメソッドを使用して、すべての {{domxref("Cache")}} オブジェクトのリストを反復処理します。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +

構文

+ +
caches.keys().then(function(keyList) {
+  // keyList で何かをする
+});
+
+ +

パラメーター

+ +

なし。

+ +

戻り値

+ +

{{domxref("CacheStorage")}} オブジェクト内の {{domxref("Cache")}} 名の配列で解決する {{jsxref("Promise")}}。

+ +

+ +

このコードスニペットでは、{{domxref("ServiceWorkerGlobalScope.onactivate", "activate")}} イベントを待機してから、新しいサービスワーカーがアクティブ化される前に、古い未使用のキャッシュをクリアする {{domxref("ExtendableEvent.waitUntil","waitUntil()")}} ブロックを実行します。 ここに、保持したいキャッシュの名前を含むホワイトリスト(cacheWhitelist)があります。 keys() を使用して {{domxref("CacheStorage")}} オブジェクトのキャッシュのキーを返し、各キーをチェックしてホワイトリストにあるかどうかを確認します。 ない場合は、{{domxref("CacheStorage.delete()")}} を使用して削除します。

+ +
then.addEventListener('activate', function(event) {
+  var cacheWhitelist = ['v2'];
+
+  event.waitUntil(
+    caches.keys().then(function(keyList) {
+      return Promise.all(keyList.map(function(key) {
+        if (cacheWhitelist.indexOf(key) === -1) {
+          return caches.delete(key);
+        }
+      });
+    })
+  );
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#dom-cachestorage-keys', 'CacheStorage: keys')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage.keys")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/cachestorage/match/index.html b/files/ja/web/api/cachestorage/match/index.html new file mode 100644 index 0000000000..bd71e0f8d5 --- /dev/null +++ b/files/ja/web/api/cachestorage/match/index.html @@ -0,0 +1,117 @@ +--- +title: CacheStorage.match() +slug: Web/API/CacheStorage/match +tags: + - API + - CacheStorage + - Method + - Reference + - Service Workers + - Service worker API + - ServiceWorker + - match +translation_of: Web/API/CacheStorage/match +--- +

{{APIRef("Service Workers API")}}

+ +

{{domxref("CacheStorage")}} インターフェイスの match() メソッドは、所与の {{domxref("Request")}} または URL 文字列が保存された {{domxref("Response")}} のキーであるかどうかをチェックします。 このメソッドは、{{domxref("Response")}} の {{jsxref("Promise")}}、または一致が見つからない場合に undefined に解決される {{jsxref("Promise")}} を返します。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +

Cache オブジェクトは作成順に検索されます。

+ +
: {{domxref("CacheStorage.match()", "caches.match()")}} は便利なメソッドです。 同等の機能は、{{domxref("Response")}} が返されるまで、({{domxref("CacheStorage.keys()", "caches.keys()")}} によって返される順序で)各キャッシュで {{domxref("cache.match()")}} を呼び出すことです。
+ +

構文

+ +
caches.match(request, options).then(function(response) {
+  // response で何かをする
+});
+
+ +

パラメーター

+ +
+
request
+
一致させたい {{domxref("Request")}}。 これは、{{domxref("Request")}} オブジェクトまたは URL 文字列にすることができます。
+
options {{optional_inline}}
+
match 操作での照合方法を制御するプロパティを持つオブジェクト。 利用可能なオプションは次のとおりです。 +
    +
  • ignoreSearch: 照合方法が URL のクエリ文字列を無視するかどうかを指定する {{jsxref("Boolean")}}。 例えば、true に設定すると、http://foo.com/?value=bar?value=bar 部分は、照合するときに無視されます。 デフォルトは false です。
  • +
  • ignoreMethod: true に設定すると、照合方法が {{domxref("Request")}}  http メソッドを検証できないようにする {{jsxref("Boolean")}}(通常は GETHEAD のみが許可されます)。 デフォルトは false です。
  • +
  • ignoreVary: true に設定された場合、VARY ヘッダーの照合をしないように照合方法に指示する {{jsxref("Boolean")}}。 つまり、URL が一致する場合、{{domxref("Response")}} オブジェクトに VARY ヘッダーがあるかどうかに関係なく一致します。 デフォルトは false です。
  • +
  • cacheName: 検索する特定のキャッシュを表す {{domxref("DOMString")}}。
  • +
+
+
+ +

戻り値

+ +

一致する {{domxref("Response")}} に解決される {{jsxref("Promise")}}。 指定されたリクエストに対する一致するレスポンスが見つからない場合、Promiseundefined に解決されます。
+  

+ +

+ +

この例は MDN の sw-test の例からのものです(sw-test をライブで見る)。 ここでは、{{domxref("FetchEvent")}} が発生するのを待ちます。 次のようなカスタムレスポンスを作成します。

+ +
    +
  1. {{domxref("CacheStorage.match","CacheStorage.match()")}} を使用して、{{domxref("CacheStorage")}} でリクエストの一致が見つかったかどうかを確認します。 もしそうなら、それを提供します。
  2. +
  3. そうでない場合は、open() を使用して v1 キャッシュを開き、{{domxref("Cache.put","Cache.put()")}} を使用してデフォルトのネットワークリクエストをキャッシュに入れ、return response.clone() を使用してデフォルトのネットワークリクエストのクローンを返します。 put() がレスポンスのボディを消費するため、最後が必要です。
  4. +
  5. これが失敗した場合(例えば、ネットワークがダウンしているため)、フォールバックレスポンスを返します。
  6. +
+ +
self.addEventListener('fetch', function(event) {
+  event.respondWith(caches.match(event.request).then(function(response) {
+    // caches.match() は常に解決します
+    // ただし、成功の場合はレスポンスに値があります
+    if (response !== undefined) {
+      return response;
+    } else {
+      return fetch(event.request).then(function (response) {
+        // レスポンスは1回のみ使用できます
+        // クローンを保存して、1番目のコピーをキャッシュに入れ、
+        // 2番目のコピーを提供する必要があります
+        let responseClone = response.clone();
+
+        caches.open('v1').then(function (cache) {
+          cache.put(event.request, responseClone);
+        });
+        return response;
+      }).catch(function () {
+        return caches.match('/sw-test/gallery/myLittleVader.jpg');
+      });
+    }
+  }));
+});
+
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#dom-cachestorage-match', 'CacheStorage: match')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage.match")}}

+ +

関連情報

+ + diff --git a/files/ja/web/api/cachestorage/open/index.html b/files/ja/web/api/cachestorage/open/index.html new file mode 100644 index 0000000000..cd7c0c98bc --- /dev/null +++ b/files/ja/web/api/cachestorage/open/index.html @@ -0,0 +1,94 @@ +--- +title: CacheStorage.open() +slug: Web/API/CacheStorage/open +tags: + - API + - CacheStorage + - Method + - Reference + - Service Workers + - Service worker API + - ServiceWorker + - open +translation_of: Web/API/CacheStorage/open +--- +

{{APIRef("Service Workers API")}}

+ +

{{domxref("CacheStorage")}} インターフェイスの open() メソッドは、cacheName に一致する {{domxref("Cache")}} オブジェクトに解決される {{jsxref("Promise")}} を返します。

+ +

グローバルな {{domxref("WindowOrWorkerGlobalScope.caches", "caches")}} プロパティを介して CacheStorage にアクセスできます。

+ +
+

: 指定した {{domxref("Cache")}} が存在しない場合、その cacheName で新しいキャッシュを作成し、この新しい {{domxref("Cache")}} オブジェクトに解決される {{jsxref("Promise")}} を返します。

+
+ +

構文

+ +
caches.open(cacheName).then(function(cache) {
+  // cache で何かをする
+});
+
+ +

パラメーター

+ +
+
cacheName
+
開きたいキャッシュの名前。
+
+ +

戻り値

+ +

要求した {{domxref("Cache")}} オブジェクトに解決される {{jsxref("Promise")}}。

+ +

+ +

この例は MDN の sw-test の例からのものです(sw-test をライブで見る)。 ここでは、{{domxref("InstallEvent")}} が発生するのを待ち、{{domxref("ExtendableEvent.waitUntil","waitUntil()")}} を実行してアプリのインストールプロセスを処理します。 これは、CacheStorage.open() を呼び出して新しいキャッシュを作成し、{{domxref("Cache.addAll()")}} を使用して一連のアセットを追加することで構成されます。

+ +
self.addEventListener('install', function(event) {
+  event.waitUntil(
+    caches.open('v1').then(function(cache) {
+      return cache.addAll([
+        '/sw-test/',
+        '/sw-test/index.html',
+        '/sw-test/style.css',
+        '/sw-test/app.js',
+        '/sw-test/image-list.js',
+        '/sw-test/star-wars-logo.jpg',
+        '/sw-test/gallery/bountyHunters.jpg',
+        '/sw-test/gallery/myLittleVader.jpg',
+        '/sw-test/gallery/snowTroopers.jpg'
+      ]);
+    })
+  );
+
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#dom-cachestorage-open', 'CacheStorage: open')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.CacheStorage.open")}}

+ +

関連情報

+ + -- cgit v1.2.3-54-g00ecf