MDN’s new design is in Beta! A sneak peek: https://blog.mozilla.org/opendesign/mdns-new-design-beta/

InstallEvent

これは実験段階の機能です。
この機能は複数のブラウザーで開発中の状態にあります。互換性テーブルをチェックしてください。また、実験段階の機能の構文と挙動は、仕様変更に伴い各ブラウザーの将来のバージョンで変更になる可能性があることに注意してください。

InstallEvent インターフェースは、ServiceWorkerServiceWorkerGlobalScope で送出されるインストールアクションを表します。ExtendableEvent の子として、インストール中に(FetchEvent のような)機能的なイベントが送出されないようになっています。

プロパティ

祖先である Event からプロパティを継承します

メソッド

親である ExtendableEvent からメソッドを継承します

このコードスニペットは、service worker fetch sample のものです。コードが、ServiceWorkerGlobalScope.oninstallExtendableEvent.waitUntil(any value) を呼び出すと、渡された promise がうまく解決するまで ServiceWorkerRegistration.installing worker がインストール済みとして扱うことを遅延できます。promise はすべてのリソースを取得してキャッシュした場合か、何らかの例外が起こった場合に解決されます。

コードスニペットは、service worker を使用したキャッシュのバージョン管理のベストプラクティスも示しています。この例では、1 つしかキャッシュがありませんが、複数のキャッシュに対しても同じアプローチができます。これは、特定のバージョン管理されたキャッシュに、ショートハンド識別子をマップします。

ノート: ログステートメントは、"Inspect" インターフェースの SW が関連する chrome://serviceworker-internals から見ることができます。

var CACHE_VERSION = 1;
var CURRENT_CACHES = {
  prefetch: 'prefetch-cache-v' + CACHE_VERSION
};

self.addEventListener('install', function(event) {
  var urlsToPrefetch = [
    './static/pre_fetched.txt',
    './static/pre_fetched.html',
    'https://www.chromium.org/_/rsrc/1302286216006/config/customLogo.gif'
  ];

console.log('Handling install event. Resources to pre-fetch:', urlsToPrefetch);

  event.waitUntil(
    caches.open(CURRENT_CACHES['prefetch']).then(function(cache) {
      cache.addAll(urlsToPrefetch.map(function(urlToPrefetch) {
        return new Request(urlToPrefetch, {mode: 'no-cors'});
      })).then(function() {
        console.log('All resources have been fetched and cached.');
      });
    }).catch(function(error) {
      console.error('Pre-fetching failed:', error);
    })
  );
});

仕様

仕様 ステータス コメント
Service Workers
FetchEvent の定義
草案 初期定義。

ブラウザー実装状況

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari (WebKit)
基本サポート 40.0 未サポート 未サポート 24 未サポート
機能 Android Firefox Mobile (Gecko) Firefox OS IE Mobile Opera Mobile Safari Mobile Chrome for Android
基本サポート ? 未サポート 未サポート 未サポート ? 未サポート 40.0

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama
 最終更新者: YuichiNukiyama,