我正在使用 Service Worker 来缓存 Web 应用程序的 JS 和 CSS 文件。我主要使用 Google Chrome 示例中的代码,我添加的唯一内容是当“新的或更新的内容可用”时刷新窗口的通知和倒计时。
然而,这种情况经常发生,我不明白为什么。服务器上的文件肯定没有任何更改,但有时我仍然会看到通知和窗口重新加载。
我预计只有当服务工作人员管理的任何文件实际发生更改时才会发生这种情况(它们都通过 Webpack 进行哈希处理,并且其间绝对没有更改)。
这是我使用的代码,内联于index.html:
/* eslint-env browser */
'use strict';
function reloadApp(delay) {
var t = delay || 0;
var message = 'New or updated content is available. Reloading app in {s} seconds';
var getMessage = function() { return message.replace('{s}', t) }
var div = document.createElement('div');
div.id = 'update-notification';
div.innerHTML = getMessage();
document.body.appendChild(div);
var intervalID = setInterval(function() {
t = t - …Run Code Online (Sandbox Code Playgroud)