PeriodicSyncManager

Limited availability

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

Experimental: This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

Note: This feature is available in Web Workers.

Giao diện PeriodicSyncManager của Web Periodic Background Synchronization API cung cấp cách đăng ký các tác vụ để chạy trong service worker theo các khoảng thời gian định kỳ khi có kết nối mạng. Các tác vụ này được gọi là yêu cầu đồng bộ hóa nền định kỳ. Truy cập PeriodicSyncManager thông qua ServiceWorkerRegistration.periodicSync.

Thuộc tính phiên bản

Không có.

Phương thức phiên bản

PeriodicSyncManager.register() Experimental

Đăng ký yêu cầu đồng bộ hóa định kỳ với trình duyệt với tag và tùy chọn được chỉ định. Trả về Promise phân giải khi đăng ký hoàn tất.

PeriodicSyncManager.getTags() Experimental

Trả về Promise phân giải với danh sách các đối tượng chuỗi đại diện cho các tag hiện đang được đăng ký để đồng bộ hóa định kỳ.

PeriodicSyncManager.unregister() Experimental

Hủy đăng ký yêu cầu đồng bộ hóa định kỳ tương ứng với tag được chỉ định và trả về Promise phân giải khi hủy đăng ký hoàn tất.

Ví dụ

Các ví dụ sau đây cho thấy cách sử dụng giao diện này.

Yêu cầu Periodic Background Sync

Hàm bất đồng bộ sau đăng ký một periodic background sync với khoảng thời gian tối thiểu một ngày từ ngữ cảnh duyệt web:

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

Xác minh Background Periodic Sync theo Tag

Code này kiểm tra xem tác vụ Periodic Background Sync với một tag nhất định có được đăng ký không.

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

Xóa tác vụ Periodic Background Sync

Code sau xóa tác vụ Periodic Background Sync để ngừng đồng bộ các bài viết trong nền.

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

Thông số kỹ thuật

Specification
Web Periodic Background Synchronization
# periodicsyncmanager-interface

Tương thích trình duyệt

Xem thêm