gpt4 book ai didi

javascript - 增加 Service Worker 的生命周期

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:43:08 24 4
gpt4 key购买 nike

我正在尝试使用服务 worker 推送通知。使用我自己的服务器发送通知,eventSource 用于建立连接。在我打开网页后,Service Worker 运行完美。但它在几秒钟后停止。我想要的是在不停止的情况下运行 service worker。我希望它一直运行到浏览器打开为止。谁能推荐一种方法来做到这一点。 ?

这是我的 ServiceWorker JS

/**
*
*/
'use strict';
var eventSource2 = new EventSource("Servlet");
console.log('Started', eventSource2);
eventSource2.addEventListener('install', function(event) {
eventSource2.skipWaiting();
console.log('Installed', event);

});

eventSource2.addEventListener('push',function(event) {
console.log(event.data);
var title = event.data;
self.registration.showNotification(title,{
'body' : event.data,
'icon' : 'http://icons.iconarchive.com/icons/designbolts/free-multimedia/1024/iMac-icon.png',
'tag' : 'click',
});
console.log("data from down", event.data);
});

eventSource2.addEventListener('activate', function(event){
console.log('Activated', event);
});

eventSource2.addEventListener('fetch', function(event) {
console.log('Push message', event);
});

最佳答案

Service Workers 的生命周期很短,您不能让他们永远运行。

您可以使用共享 worker 来执行此操作,但它们仅在您的网站打开时运行。

您正在尝试混合使用推送 API 和 EventSource。如果你使用 Push API,你不需要让 service worker 一直保持事件状态,你可以让它在推送通知到达时执行。

参见 example on the ServiceWorker Cookbook .

关于javascript - 增加 Service Worker 的生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35837967/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com