服务工作者第一次不加载
serviceworker does not load the first time
if ('serviceWorker' in navigator) {
console.log('Service Worker is supported');
navigator.serviceWorker.register('sw.js').then(function(reg) {
console.log(reg);
reg.pushManager.subscribe({
userVisibleOnly: true
}).then(function(sub) {
var endpoint = sub.endpoint;
console.log('endpoint:', sub.endpoint);
});
}).catch(function(err) {
console.log(':(', err);
});
}
这是我的 serviceWorker 注册的简单示例。当我第一次加载页面时,我收到错误:
未捕获(承诺中(DOMException:订阅失败 - 没有活动的服务辅助角色
如果我重新加载此页面,一切正常。在Mozilla中,我没有这个错误。为什么不能在第一次加载中注册 serviceWorker ?
为了接收推送事件,您需要一个成功安装的服务工作线程。你在成功安装服务辅助角色之前请求订阅,因此它失败。否则,看起来您的推送订阅有效,但如果唯一的辅助角色安装失败,则注册(以及您的订阅(将被丢弃。
navigator.serviceWorker.ready
是一个承诺,一旦向活动(成功安装(工作人员注册,就会解决。它通过注册解决,因此在这里运行良好。
navigator.serviceWorker.ready.then(reg => reg.pushManager.subscribe(…))
相关文章:
- 分页:如何用AJAX加载第一个页面
- 加载器组件仅加载一次
- 如何加载一次模型并将其存储到变量中
- JS文件未加载第一页加载
- 每15天为新用户加载一次放大弹出菜单
- Jquery Ajax每隔1秒加载一次
- 每个用户/浏览器会话只加载一次Javascript
- 当audiojs加载两次时,audiojs进度条不工作
- 自定义JQUERY未在分页页面上加载(第一页除外)
- 获取 window.location.reload 以在 Ionic 中仅加载一次
- 只加载一次js函数
- 剑道TabstripDons't正确加载第一个选项卡
- 用于单击页面上的按钮的Javascript,每隔几分钟就会加载一次
- 有没有办法阻止脚本加载两次?JavaScript
- Facebook喜欢的按钮只加载一次
- 如何每 30 秒加载一次页面的一部分
- 为什么在 IIS7 中托管 MVC3 项目时,我的 AJAX 加载第一次失败
- 谷歌地图标记不加载第一次左右
- Youtube iFrame(与javascript API)加载第一次,但不是第二次.为什么
- 一些javascript问题:奇怪的时间依赖和图像不加载第一次