使用 Service Worker 更新 dom

Using service worker to update dom

我已经实现了网络推送通知,现在我正在研究在浏览器中打开网站时使用 service worker 更新 DOM 的可能性。 类似于社交媒体网站在您收到消息时如何更新(或 SO 就此而言)。

这是可能的,还是我找错人了?

我试过简单地告诉 service worker 查找某个元素并更新其内容,但这没有用。

Service worker(通常是 web worker)无权访问 window 或文档元素。这意味着网络工作者不能直接操纵 DOM.

但是,网络工作者可以使用 Client.postMessage() 将消息发送到主线程(文档 javascript)。 因此,您需要做的是从 service worker 向文档 javascript 发送消息,其中包含您要操作的 DOM 个元素的 id/class/tagname/whatever 列表,然后让主线程完成这项工作。