2017-07-05 10 views
1

最初にキャッシュするURLとして '/'(ルート).cssと.jsファイルをURLとして登録します。サービスワーカーはページ全体をキャッシュしないでください

しかし、その後、私はそれは私が私の見解上の任意の更新が表示されないこと、ページ全体を、キャッシュされたことを認識し、イベントデータベースの更新があります。

だから私はそれは私の.cssと.jsファイルをキャッシュに変更はもう、私はそれが問題だと予想(「/」)ルートをないファイル。

しかし、しばらくしても同じ問題が発生しました。私はそれがすでにこのように変更しても、私のサービスワーカーファイルものの、再びページ全体をキャッシュなかった私のコンソール上で確認してください。

var CACHE_NAME = 'cache-v2'; 
var urlsToCache = [ 
    '/assets/css/app.css', 
    '/assets/js/main.js', 
    '/assets/js/other.js' 
]; 

self.addEventListener('install', function(event) { 
    event.waitUntil(
    caches.open(CACHE_NAME) 
     .then(function(cache) { 
     console.log('Opened cache'); 
     return cache.addAll(urlsToCache); 
     }) 
); 
}); 

self.addEventListener('activate', function(e) { 
    console.log('[ServiceWorker] Activate'); 
    e.waitUntil(
    caches.keys().then(function(keyList) { 
     return Promise.all(keyList.map(function(key) { 
     if (key !== CACHE_NAME) { 
      console.log('[ServiceWorker] Removing old cache', key); 
      return caches.delete(key); 
     } 
     })); 
    }) 
); 
    return self.clients.claim(); 
}); 

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) { 

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

答えて

0

誰もがここで同じ問題、 を有する場合には、私は

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); 
    }) 
); 
}); 
を変更すべきかであります

問題

のようなので、私の前のフェッチルックス
関連する問題