服务工作者似乎没有更新

时间:2015-11-20 05:06:28

标签: javascript service-worker

我正在关注服务工作者(http://www.html5rocks.com/en/tutorials/service-worker/introduction/#disqus_thread)的以下html5 rock教程,并且我遇到了我的服务工作者不想更新的问题。

我有一个名为" app.js"使用以下代码:

navigator.serviceWorker.register('worker.js').then(function(reg) {
  console.log('◕‿◕', reg);
}, function(err) {
  console.log('ಠ_ಠ', err);
});

我还有一个名为" worker.js"的文件。使用以下代码:

console.log("SW startup");
var myCache = 'myapp-static-v3';
var urlsToCache = [ 
  '/',
  '/assets/style.css',
  'app.js'
];

self.addEventListener('install', function(event) {
  console.log("SW installed");
  // pre cache a load of stuff:
  event.waitUntil(
    caches.open(myCache).then(function(cache) {
      console.log("opened cache");
      return cache.addAll(urlsToCache);
    })
  )
});

self.addEventListener('activate', function(event) {

  var cacheWhitelist = [myCache];

   event.waitUntil(
    caches.keys().then(function(cacheNames) {
      return Promise.all(
        cacheNames.map(function(cacheName) {
          if (cacheWhitelist.indexOf(cacheName) === -1) {
            return caches.delete(cacheName);
          }
        })
      );
    })
  );
});

self.addEventListener('fetch', function(event) {
  event.respondWith(
    caches.match(event.request)
      .then(function(response) {
        // Cache hit - return response
        if (response) {
          return response;
        }

        var fetchRequest = event.request.clone();

        return fetch(fetchRequest).then(
          function(response) {
            // Check if we received a valid response
            if(!response || response.status !== 200 || response.type  !== 'basic') {
              return response;
        }

        var responseToCache = response.clone();

        caches.open(CACHE_NAME)
          .then(function(cache) {
            cache.put(event.request, responseToCache);
          });

        return response;
      }
    );
  })
);
});

我尝试更新实际的myCache变量名,使用不同的文件切换style.css并实际更改内容。

任何人都知道我做错了什么?

1 个答案:

答案 0 :(得分:0)

enter image description here

根据文档,它是必须更改的服务工作者的实际文件。我在服务工作者更新中做了什么,我更改了版本号。在您的情况下,它可能是C:\Users\MyFriendsName\Documents>javac Hello.java C:\Users\MyFriendsName\Documents>

您可以执行语义版本控制等操作 var myCache = 'myapp-static-v3';然后升级到var myCache = 'myapp-static-v3.0.0'