--- 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 で何かをする });
要求した {{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")}}