safari - Safari PWA 的 self.skipWaiting()
问题描述
使用 chrome 浏览器,可以用skipWaiting
新的服务人员替换旧的服务人员。
我了解 Safari(https://developer.mozilla.org/en-US/docs/Web/API/ServiceWorkerGlobalScope/skipWaiting)不支持此功能。那么替代方案是什么?
这里的工作流程是做什么skipWaiting
的呢?
这就是我对 chrome 的看法:
self.addEventListener('install', function(event) {
self.skipWaiting();
});
解决方案
我不认为浏览器支持信息是准确的,请参见此处,它从 Safari 11.1 中说可以。
在这方面,我从未注意到我的 PWA 与 Chrome 有任何区别。我显示了一个重新加载按钮,单击该按钮时,会向 SW 发送一条消息,并在收到时:
addEventListener('message', e => {
if (e.data && e.data.type === 'SKIP_WAITING') skipWaiting();
});
推荐阅读
- c# - 如何正确检测游戏对象?
- git - 从命令行覆盖 .gitattributes
- ios - Swift 嵌入式 HTTP 服务器在 Mac 上连接,但在 iPhone 上不连接
- scala - 如何在不同的机器上重用编译的源代码
- lua - Lua 以字符串形式返回执行结果
- node.js - 如何在 Sequelize 中将动态附加属性添加到具有多对多关联的联结表中
- java - java ProcessBuilder运行shell脚本挂了
- python - 使用 Pandas 将彩色字体打印到 Excel
- c++ - c++ std::function 如何绑定到模板函数?
- java - 末端的双重 LL 插入卡在循环上