PWA:登录后我必须刷新才能更新导航栏

时间:2020-03-17 16:05:11

标签: javascript cakephp service-worker progressive-web-apps

我是PWA的新手。我听说过PWA的好处。所以我试了一下。我在cakephp 2中构建了应用程序。我正在为应用程序实现PWA。速度和应用程序般的感觉给我留下了深刻的印象。但是遇到了诸如当我登录到应用程序然后登录(我可以转到仪表板)这样的问题,但是导航栏在登录后没有更新。意味着它在登录后始终显示登录和注册链接。

登录前后的导航栏相同。我已强制刷新页面(CTRL + F5)以更新导航栏。 enter image description here

这是我的代码。

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;
        })
    );
});

我在这里做错了。请提出建议。

0 个答案:

没有答案