Service Worker 是否可以自定义事件?
Are custom events possible in service workers?
是否可以使用 service worker 发送和接收任意事件?
我在想类似的东西:
// main.js
navigator.serviceWorker.triggerEvent('hello');
// service-worker.js
self.addEventListener('hello', someFunction);
我知道我可以用 postMessage 模拟这种行为(比如使用 postMessage('hello');
),但我仍然很好奇。
那些事件是"hard-coded"from the spec,所以答案是不,不可能。
除了真正的“任意”要求外,我强烈反对基于以下文档的已接受答案:-
Service Worker Extensibility
, Example from developer Mozilla
类似于OPs要求根据用户定义的事件实例化一个SW,我一直在拼命等待ServiceWorkerRegistration.travelManager(getSubscription(), permissionState(), subscribe())
的到来
subscribe() 方法将采用事件过滤器选项,例如(minMsecs/meters 位置更新之间、准确性等)
将创建一个新的 ServiceWorker“旅行”事件。 UserAgent 必须能够根据此事件重新实例化先前终止的 ServiceWorker。
每个 UserAgent 一个 GeoLocation 观察器对我来说听起来很省电!
是否可以使用 service worker 发送和接收任意事件?
我在想类似的东西:
// main.js
navigator.serviceWorker.triggerEvent('hello');
// service-worker.js
self.addEventListener('hello', someFunction);
我知道我可以用 postMessage 模拟这种行为(比如使用 postMessage('hello');
),但我仍然很好奇。
那些事件是"hard-coded"from the spec,所以答案是不,不可能。
除了真正的“任意”要求外,我强烈反对基于以下文档的已接受答案:- Service Worker Extensibility , Example from developer Mozilla 类似于OPs要求根据用户定义的事件实例化一个SW,我一直在拼命等待ServiceWorkerRegistration.travelManager(getSubscription(), permissionState(), subscribe())
的到来subscribe() 方法将采用事件过滤器选项,例如(minMsecs/meters 位置更新之间、准确性等)
将创建一个新的 ServiceWorker“旅行”事件。 UserAgent 必须能够根据此事件重新实例化先前终止的 ServiceWorker。
每个 UserAgent 一个 GeoLocation 观察器对我来说听起来很省电!