safari - safari 14.1 认为当我在 workbox.window 上调用 update() 时没有软件更新
问题描述
这只是今天早上才开始发生的,尽管我已经 6 天没有推送更新了。我们的一些 webapp 用户突然收到更新消息,当他们单击更新时,它似乎可以工作,但他们马上又回来了。我正在使用 workbox ^6.1.2 窗口,它已经工作了好几个月:
const wb = new Workbox("/service-worker.js");
wb.addEventListener("waiting", (event) => {
me.waiting = event.sw;
me.showRefreshUI(event);
});
wb.register();
setInterval(() => {
log.debug("Checking for updates...");
wb.update();
}, 1000 * 60 * 5);
如果用户单击我的更新按钮,我会这样做:
navigator.serviceWorker.addEventListener("controllerchange", () => {
window.location.reload();
});
messageSW(this.waiting, { type: "SKIP_WAITING" });
只要我不推送任何软件更新,我就认为对 wb.update() 的调用不会做任何事情,但截至今天早上,对于 safari 14.1 用户来说,它现在认为每次都有新的更新。
这可能与我没有使用 isExternal 或“externalwaiting”消息正确处理“外部”工作人员有关吗?
解决方案
推荐阅读
- sorting - 鸡尾酒排序使用多少比较?
- css - Rails 5.2 背景图像未出现(使用 ERB 到 URL)
- c# - 如何将可变长度的模型列表传递给方法
- python-3.x - 将列表分成大约 5K 个字符
- jquery - 无法让 jQuery 追加处理字符串
- memory-leaks - 需要帮助调查复杂 TCL 应用程序中的内存泄漏
- angularjs - 如何在angularjs中启用本地缓存
- xml - 使用 XElement 创建 XML 时解析错误
- javascript - 如何在会话或 cookie 中存储用 HTML 和 JavaScript 编写的表单中的数据,以便在访问表单时使用 PHP 进行预加载
- html - 背景图像未显示在 div 元素内