我有一个向服务工作者脚本发送消息的网页。为了能够这样做,网页需要是服务器工作者脚本的客户端。 有不同的方法可以做到这一点,但据我所知,所有方法都会导致客户端网页缓存在服务工作者中。
我想知道网页是否可以向服务器工作者脚本发送消息,而不必将其缓存到服务器工作者?
答案 0 :(得分:2)
当然,并不要求服务工作者根本不缓存任何内容,甚至不要求服务工作者实现fetch
处理程序并拦截网络请求。您可以创建一个只有message
处理程序的服务工作程序,该处理程序侦听来自其控制的页面的传入消息:
// service-worker.js:
self.addEventListener('message', event => {
// Do something with event.data
});
但是,如果您只是使用服务工作者来收听消息,而不是拦截网络请求,我想知道像SharedWorker
或仅仅是普通的Worker
这样的替代方案是否会是一个更好的选择吗?