ServiceWorkerGlobalScope: backgroundfetchabort イベント

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Experimental: これは実験的な機能です。
本番で使用する前にブラウザー互換性一覧表をチェックしてください。

安全なコンテキスト用: この機能は一部またはすべての対応しているブラウザーにおいて、安全なコンテキスト (HTTPS) でのみ利用できます。

メモ: この機能はサービスワーカー内でのみ利用可能です。

backgroundfetchabortServiceWorkerGlobalScope インターフェイスのイベントで、ユーザーまたはアプリ自体がバックグラウンドフェッチ操作をキャンセルしたときに発生します。

このイベントはキャンセル不可で、バブリングしません。

構文

このイベント名を addEventListener() などのメソッドで使用するか、イベントハンドラープロパティを設定するかしてください。

js
addEventListener("backgroundfetchabort", (event) => {});

onbackgroundfetchabort = (event) => {};

イベント型

イベントプロパティ

親である ExtendableEvent から継承したプロパティがあります。

BackgroundFetchEvent.registration

中止されたフェッチのための BackgroundFetchRegistration を返します。

解説

バックグラウンドフェッチ API では、ブラウザーがユーザーに UI 要素を表示して操作の進行状況を示します。この要素により、ユーザーはフェッチをキャンセルすることもできます。アプリ自体も、BackgroundFetchRegistration.abort() を呼び出すことでフェッチをキャンセルできます。

フェッチがキャンセルされた場合、ブラウザーはフェッチを中止し、必要に応じてサービスワーカーを起動し、そのサービスワーカーのグローバルスコープで backgroundfetchabort イベントを発生させます。

このイベントのハンドラー内で、サービスワーカーは操作に関連するデータをクリーンアップできます。また、成功したレスポンスをすべて取得して保存することもできます(例えば、Cache API を使用して)。レスポンスデータにアクセスするために、サービスワーカーはイベントの registration プロパティを使用します。

クリーンアップ

このイベントハンドラーは、中止されたフェッチに関連するデータのクリーンアップを実行することができます。

js
addEventListener("backgroundfetchabort", (event) => {
  // 関連するデータをクリーンアップ
});

仕様書

Specification
Background Fetch
# dom-serviceworkerglobalscope-onbackgroundfetchabort

ブラウザーの互換性

BCD tables only load in the browser

関連情報