簡體   English   中英

服務工作者似乎沒有更新

[英]Service worker doesn't seem to update

我正在關注服務工作者的以下html5 rock教程( http://www.html5rocks.com/en/tutorials/service-worker/introduction/#disqus_thread ),我遇到了我的服務工作者沒有的問題。我想要更新。

我有一個名為“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並實際更改內容。

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

在此輸入圖像描述

根據文檔,它是必須更改的服務工作者的實際文件。 我在服務工作者更新中做了什么,我更改了版本號。 在你的情況下,它可能是var myCache = 'myapp-static-v3';

您可以執行語義版本控制等操作。
var myCache = 'myapp-static-v3.0.0'然后升級到var myCache = 'myapp-static-v3.0.1';

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM