From 33058f2b292b3a581333bdfb21b8f671898c5060 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:40:17 -0500 Subject: initial commit --- .../web/api/extendableevent/waituntil/index.html | 83 ++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 files/ja/web/api/extendableevent/waituntil/index.html (limited to 'files/ja/web/api/extendableevent/waituntil') diff --git a/files/ja/web/api/extendableevent/waituntil/index.html b/files/ja/web/api/extendableevent/waituntil/index.html new file mode 100644 index 0000000000..579b66c954 --- /dev/null +++ b/files/ja/web/api/extendableevent/waituntil/index.html @@ -0,0 +1,83 @@ +--- +title: ExtendableEvent.waitUntil() +slug: Web/API/ExtendableEvent/waitUntil +tags: + - API + - ExtendableEvent + - Method + - Reference + - waitUntil +translation_of: Web/API/ExtendableEvent/waitUntil +--- +

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

+ +

ExtendableEvent.waitUntil() メソッドは、作業が進行中であることをイベントディスパッチャーに通知します。 また、その作業が成功したかどうかを検出するためにも使用できます。 サービスワーカーの場合、waitUntil() は、Promise が確定するまで作業が進行中であることをブラウザーに通知し、サービスワーカーがその作業を完了させたい場合にサービスワーカーを終了させません。

+ +

{{domxref("ServiceWorkerGlobalScope", "サービスワーカー")}}の install イベントは、waitUntil() を使用して、タスクが完了するまでサービスワーカーをインストール中({{domxref("ServiceWorkerRegistration.installing", "installing")}})の段階に保持します。 waitUntil() に渡された Promise が拒否された場合、インストールは失敗と見なされ、インストール中のサービスワーカーは破棄されます。 これは主に、依存するすべてのコアキャッシュが正常に読み込まれるまで、サービスワーカーがインストール済み(installed)と見なされないようにするために使用します。

+ +

{{domxref("ServiceWorkerGlobalScope", "サービスワーカー")}}の activate イベントは、waitUntil() を使用して、waitUntil() に渡された Promise が解決するまで、fetchpush などの機能イベントをバッファーします。 これにより、サービスワーカーはデータベーススキーマを更新し、古い{{domxref("Cache", "キャッシュ")}}を削除する時間を確保できるため、他のイベントは完全にアップグレードされた状態に依存できます。

+ +

waitUntil() メソッドは、最初はイベントコールバック内で呼び出す必要がありますが、その後、すべての Promise が解決するまで、複数回呼び出すことができます。

+ +
+

: 上記の段落で説明した動作は、Firefox 43 で修正されました({{bug(1180274)}} を参照)。

+
+ +

構文

+ +
extendableEvent.waitUntil(promise);
+ +

パラメーター

+ +

{{jsxref("Promise")}}。

+ +

戻り値

+ +

undefined

+ +

+ +

サービスワーカーの install イベント内で waitUntil() を使用する。

+ +
addEventListener('install', event => {
+  const preCache = async () => {
+    const cache = await caches.open('static-v1');
+    return cache.addAll([
+      '/',
+      '/about/',
+      '/static/styles.css'
+    ]);
+  };
+  event.waitUntil(preCache());
+});
+ +

仕様

+ + + + + + + + + + + + + + +
仕様状態コメント
{{SpecName('Service Workers', '#dom-extendableevent-waituntil', 'waitUntil()')}}{{Spec2('Service Workers')}}初期定義
+ +

ブラウザーの互換性

+ + + +

{{Compat("api.ExtendableEvent.waitUntil")}}

+ +

関連情報

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