--- 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")}}