【发布时间】:2017-06-22 21:52:12
【问题描述】:
我构建了一个渐进式 Web 应用程序,https://www.tavest.com。 我不明白为什么我的服务人员也被缓存在 Chrome 中? https://www.tavest.com/service-worker-tavest.js 因此,当我更改服务人员时,chrome 不会检测到更改,因此服务人员没有更新。
即使我多次刷新页面,它仍然是一样的。但是,在 Mozilla 中它工作得很好。 这是我安装 service worker 的代码
if ('serviceWorker' in navigator && (window.location.protocol === 'https:')) {
navigator.serviceWorker.register('/service-worker-tavest.js')
.then(function(registration) {
// updatefound is fired if service-worker.js changes.
registration.onupdatefound = function() {
// updatefound is also fired the very first time the SW is installed,
// and there's no need to prompt for a reload at that point.
// So check here to see if the page is already controlled,
// i.e. whether there's an existing service worker.
if (navigator.serviceWorker.controller) {
// The updatefound event implies that registration.installing is set:
// https://slightlyoff.github.io/ServiceWorker/spec/service_worker/index.html#service-worker-container-updatefound-event
var installingWorker = registration.installing;
installingWorker.onstatechange = function() {
switch (installingWorker.state) {
case 'installed':
// At this point, the old content will have been purged and the
// fresh content will have been added to the cache.
// It's the perfect time to display a "New content is
// available; please refresh." message in the page's interface.
console.warn('New content is available, please refresh the page');
break;
case 'redundant':
throw new Error('The installing ' +
'service worker became redundant.');
default:
// Ignore
}
};
}
};
}).catch(function(e) {
console.error('Error during service worker registration:', e);
});
}
感谢您的帮助
热烈的问候,
【问题讨论】:
标签: javascript google-chrome progressive-web-apps