我是PWA的新手。我听说过PWA的好处。所以我试了一下。我在cakephp 2中构建了应用程序。我正在为应用程序实现PWA。速度和应用程序般的感觉给我留下了深刻的印象。但是遇到了诸如当我登录到应用程序然后登录(我可以转到仪表板)这样的问题,但是导航栏在登录后没有更新。意味着它在登录后始终显示登录和注册链接。
登录前后的导航栏相同。我已强制刷新页面(CTRL + F5)以更新导航栏。
这是我的代码。
if('serviceWorker' in navigator) {
window.addEventListener('load', function() {
navigator.serviceWorker.register('/sw.js').then(function(registration) {
// Registration was successful
registration.update();
for (let reg of registration) {
reg.update();
}
console.log('ServiceWorker registration successful with scope: ', registration.scope);
}, function(err) {
// registration failed :(
console.log('ServiceWorker registration failed: ', err);
});
});
}
在我的sw.js文件中,安装和获取事件。根据我的代码,我仅缓存CSS,JS和图像。
self.addEventListener('install', function(e) {
e.waitUntil(
caches.open('sl-store').then(function(cache) {
return cache.addAll([
'/frontend/css',
'/css/',
'/js/',
'/fonts/',
'/img/',
'/font-awesome-4.1.0/',
]);
})
);
});
self.addEventListener('fetch', function(e) {
console.log(e.request.url);
e.respondWith(
caches.match(e.request).then(function(response) {
//return response || fetch(e.request);
return fetch(e.request) || response;
})
);
});
我在这里做错了。请提出建议。