ServiceWorkerContainer: phương thức startMessages()
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since January 2020.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
Phương thức startMessages() của giao diện ServiceWorkerContainer khởi động rõ ràng luồng tin nhắn được phân phối từ service worker đến các trang thuộc quyền kiểm soát của nó (ví dụ: được gửi qua Client.postMessage()). Điều này có thể được sử dụng để phản hồi các tin nhắn đã gửi sớm hơn, ngay cả khi nội dung của trang đó chưa tải xong.
Giải thích
Theo mặc định, tất cả tin nhắn được gửi từ service worker kiểm soát trang đến trang (sử dụng Client.postMessage()) được xếp hàng đợi trong khi trang đang tải, và được phân phối sau khi tài liệu HTML của trang đã được tải và phân tích cú pháp (tức là, sau khi sự kiện DOMContentLoaded được kích hoạt). Có thể bắt đầu phân phối các tin nhắn này sớm hơn bằng cách gọi ServiceWorkerContainer.startMessages(), ví dụ: nếu bạn đã gọi một trình xử lý tin nhắn bằng EventTarget.addEventListener() trước khi trang tải xong, nhưng muốn bắt đầu xử lý tin nhắn ngay lập tức.
Note:
Các tin nhắn bắt đầu được gửi tự động khi đặt trình xử lý trực tiếp bằng onmessage. Trong trường hợp này, bạn không cần startMessages().
Cú pháp
startMessages()
Tham số
Không có.
Giá trị trả về
undefined.
Ví dụ
if ("serviceWorker" in navigator) {
navigator.serviceWorker.register("/sw.js").then(() => {
console.log("Service Worker Registered");
});
}
// …
navigator.serviceWorker.addEventListener("message", (e) => {
// …
});
navigator.serviceWorker.startMessages();
Đặc tả kỹ thuật
| Specification |
|---|
| Service Workers Nightly> # navigator-service-worker-startMessages> |