Chrome 脱机时删除了应用程序缓存
Chrome Application Cache deleted when going Offline
我打算使用 Service Worker 使 Web 应用程序可以离线使用。当我有 Internet 连接时,缓存存储会显示文件。但是,如果我离线,缓存似乎会消失。我没有在 Service Workers 选项卡中启用重新加载时更新复选框。
我的 service worker 的 fetch 事件是:
self.addEventListener('fetch', function(e) {
console.log('[ServiceWorker] Fetch', e.request.url);
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
当我在线时,控制台的打印是:
获取脚本时出现未知错误。
无法加载资源:net::ERR_INTERNET_DISCONNECTED service-worker.js
然而,当我离线时,控制台输出如下:
[ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/CSS/bootstrap.css
service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/logo.png
cocoa.pythonanywhere.com/:1 使用清单 https://cocoa.pythonanywhere.com/static/login/Offline/HTML/manifesto 将主条目添加到应用程序缓存
service-worker.js:113 [ServiceWorker] 获取 https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css
service-worker.js:113 [ServiceWorker] 获取 https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js
service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/js/app.js
service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/js/jquery-3.1.1.min.js
service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/js/bootstrap.min.js
service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/js/diem.js
cocoa.pythonanywhere.com/:1 检测到慢速网络。加载时将使用后备字体:https://cocoa.pythonanywhere.com/static/login/bootstrap/fonts/glyphicons-halflings-regular.woff2
app.js:2 客户:正在进行服务工作者注册。
app.js:4 客户:service worker 注册完成。
当我在线时,应用程序选项卡看起来:
已发布应用程序缓存并已注册 Service Worker。
离线时显示如下:
缓存未更新且服务工作者未激活。
我在以下 GitHub 存储库中找到了 service-worker 所需的代码:
https://github.com/GoogleChrome/samples/tree/gh-pages/service-worker/custom-offline-page
我唯一做的就是更新请求的 Cahce 文件。在:
const OFFLINE_URL = 'name_of_the_file';
我打算使用 Service Worker 使 Web 应用程序可以离线使用。当我有 Internet 连接时,缓存存储会显示文件。但是,如果我离线,缓存似乎会消失。我没有在 Service Workers 选项卡中启用重新加载时更新复选框。
我的 service worker 的 fetch 事件是:
self.addEventListener('fetch', function(e) {
console.log('[ServiceWorker] Fetch', e.request.url);
e.respondWith(
caches.match(e.request).then(function(response) {
return response || fetch(e.request);
})
);
});
当我在线时,控制台的打印是:
获取脚本时出现未知错误。 无法加载资源:net::ERR_INTERNET_DISCONNECTED service-worker.js
然而,当我离线时,控制台输出如下:
[ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/CSS/bootstrap.css service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/logo.png cocoa.pythonanywhere.com/:1 使用清单 https://cocoa.pythonanywhere.com/static/login/Offline/HTML/manifesto 将主条目添加到应用程序缓存 service-worker.js:113 [ServiceWorker] 获取 https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/css/bootstrap-datepicker3.css service-worker.js:113 [ServiceWorker] 获取 https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.4.1/js/bootstrap-datepicker.min.js service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/js/app.js service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/js/jquery-3.1.1.min.js service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/bootstrap/js/bootstrap.min.js service-worker.js:113 [ServiceWorker] 获取 https://cocoa.pythonanywhere.com/static/login/js/diem.js cocoa.pythonanywhere.com/:1 检测到慢速网络。加载时将使用后备字体:https://cocoa.pythonanywhere.com/static/login/bootstrap/fonts/glyphicons-halflings-regular.woff2 app.js:2 客户:正在进行服务工作者注册。 app.js:4 客户:service worker 注册完成。
当我在线时,应用程序选项卡看起来:
已发布应用程序缓存并已注册 Service Worker。
离线时显示如下:
缓存未更新且服务工作者未激活。
我在以下 GitHub 存储库中找到了 service-worker 所需的代码:
https://github.com/GoogleChrome/samples/tree/gh-pages/service-worker/custom-offline-page
我唯一做的就是更新请求的 Cahce 文件。在:
const OFFLINE_URL = 'name_of_the_file';