最近,我正在为Service Workers做更多工作,并构建一个小脚本来检查您是否处于离线状态,以便我可以提供自己的自定义"离线页面"给用户。今天我发现在关闭我的开发人员工具(Chrome 61+)时,在进一步开发我的网站(HTML,CSS和JavaScript)时,页面没有更新我对页面的最新修改。它似乎与我的Service Worker脚本有关。
如果我卸载SW或删除文件中的所有代码,我会看到我的更改已停用我的开发人员工具。我将问题归结为我用作event.respondWith
回调的fetch方法。但这也是我被卡住的地方。
非常感谢所有帮助!
提前致谢, 斯蒂芬
"use strict";
// Install stage sets up the offline page in the cache and opens a new cache.
self.addEventListener('install', function(event){
let offlinePage = new Request('Offline.html');
event.waitUntil(
fetch(offlinePage).then(function(response){
return caches.open('page-offline').then(function(cache){
console.log('Cached offline page during install', response.url);
return cache.put(offlinePage, response);
});
})
);
});
// If any fetch fails, it will show the offline page.
self.addEventListener('fetch', function(event){
event.respondWith(
fetch(event.request).catch(function(error){
console.error('Network request failed, serving the offline page: ' + error);
return caches.open('page-offline').then(function(cache){
return cache.match('Offline.html');
});
}
})
});