2

WordPressのインストール用にサービスワーカーを作成しています。 sw.jsファイルにキャッシュするファイルのリストを定義していますが、ページを更新するとWordPressが多くの追加ファイルを読み込んでいるようです。WordPressにサービスワーカーを追加していますが、Wordpressファイルをキャッシュに追加するのをやめることはできません。

これは通常問題ではありませんが、コンテンツの編集を中止しているadminファイルの一部がキャッシュされていることを意味します。

ここにコードがあります。 sw.jsファイルはWordpressのルートにあります。 'test.css'という名前のファイルも、テスト目的でルートにあります。

何か助けてください!

-Steve

(function() { 
    'use strict'; 

    var filesToCache = [ 
     'test.css' 
    ]; 

    var staticCacheName = 'pages-cache-v1.0.1'; 

    self.addEventListener('install', function(event) { 
    console.log('Attempting to install service worker and cache static assets'); 
    event.waitUntil(
     caches.open(staticCacheName) 
     .then(function(cache) { 
     console.log(filesToCache); 
     return cache.addAll(filesToCache); 
     }) 
    ); 
    }); 

    self.addEventListener('fetch', function(event) { 
    //console.log('Fetch event for ', event.request.url); 
    event.respondWith(
     caches.match(event.request).then(function(response) { 
     if (response) { 
      //console.log('Found ', event.request.url, ' in cache'); 
      return response; 
     } 
     //console.log('Network request for ', event.request.url); 
     return fetch(event.request).then(function(response) { 
      return caches.open(staticCacheName).then(function(cache) { 
      if (event.request.url.indexOf('test') < 0) { 
       cache.put(event.request.url, response.clone()); 
      } 
      return response; 
      }); 
     }); 
     }).catch(function(error) { 
     console.log('Error, ', error); 
     }) 
    ); 
    }); 

    self.addEventListener('activate', function(event) { 
    //console.log('Activating new service worker...'); 

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

})(); 

答えて

0

ので、確認するために、あなたの問題は右、あまりにも多くがキャッシュされているということでしょうか?

その場合は、コードを見てください。キャッシュ内に何かが見つからなければ、ネットワークからそれを取り出します。はキャッシュに入れます。それがコード内の唯一のput操作です。

hereと同じ問題があります。

コードの流れは、Service Workersを使い始める人にとっては新しいものですが、実際にはかなり単純です。あなたはそれを読むことができ、それが何をしているかを伝えます。あなたがコードを入力した行を見てください。その行の周辺を見てください。何が起こっていますか?

希望します。

+0

ありがとうございました。上記のリンクには素晴らしい情報がありました。問題はfetch関数と関係していました。 –

関連する問題