PeriodicSyncManager

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

PeriodicSyncManagerウェブ定期バックグラウンド同期 API のインターフェイスは、ネットワーク接続のある定期的な間隔で実行するタスクをサービスワーカーの中に登録する方法を提供します。これらのタスクは、定期バックグラウンド同期リクエストと呼ばれます。PeriodicSyncManager には ServiceWorkerRegistration.periodicSync を通してアクセスします。

インスタンスプロパティ

なし。

インスタンスメソッド

PeriodicSyncManager.register Experimental

指定したタグとオプションでブラウザーに定期同期リクエストを登録します。登録が完了した時点で解決する Promise を返します。

PeriodicSyncManager.getTags Experimental

定期同期を行うために現在登録されているタグを表す文字列のリストで解決される Promise を返します。

PeriodicSyncManager.unregister Experimental

指定されたタグに対応する定期同期のリクエストを登録解除し、登録解除が完了すると解決する Promise を返します。

次の例は、インターフェイスを使用する方法を示しています。

定期バックグラウンド同期のリクエスト

以下の非同期関数は、閲覧コンテキストから最小 1 日間隔で定期バックグラウンド同期を登録するものです。

js
async function registerPeriodicNewsCheck() {
  const registration = await navigator.serviceWorker.ready;
  try {
    await registration.periodicSync.register("get-latest-news", {
      minInterval: 24 * 60 * 60 * 1000,
    });
  } catch {
    console.log("Periodic Sync could not be registered!");
  }
}

タグによる定期バックグラウンド同期の検証

このコードは、指定されたタグを持つ定期バックグラウンド同期タスクが登録されているかどうかを調べるものです。

js
navigator.serviceWorker.ready.then((registration) => {
  registration.periodicSync.getTags().then((tags) => {
    if (tags.includes("get-latest-news")) skipDownloadingLatestNewsOnPageLoad();
  });
});

定期バックグラウンド同期タスクの削除

以下は、定期バックグラウンド同期タスクを削除して、バックグラウンドでの記事同期を停止するコードです。

js
navigator.serviceWorker.ready.then((registration) => {
  registration.periodicSync.unregister("get-latest-news");
});

仕様書

Specification
Web Periodic Background Synchronization
# periodicsyncmanager-interface

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
PeriodicSyncManager
Experimental
getTags
Experimental
register
Experimental
unregister
Experimental

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support
Experimental. Expect behavior to change in the future.
See implementation notes.

関連情報