2

WordPress 용 서비스 작업자를 만들고 있습니다. sw.js 파일에 캐시 할 파일 목록을 정의하고 있지만 페이지를 새로 고칠 때 WordPress가 많은 추가 파일을로드하는 것으로 보입니다.WordPress에 서비스 작업자를 추가하고 있지만 WordPress 파일을 캐시에 추가하는 것을 막을 수는 없습니다

이것은 일반적으로 문제가되지 않지만 콘텐츠를 편집하는 사용자를 중지시키는 일부 관리 파일이 캐시되고 있음을 의미합니다.

다음은 코드입니다. sw.js 파일은 Wordpress의 루트에 있습니다. 'test.css'라는 파일은 테스트 목적으로 루트에 있습니다.

도움이되었습니다.

스티브

(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

그래서 확인하는 , 당신의 문제는 너무 많은 오른쪽 캐시이다?

그런 경우 코드를 확인하십시오. 캐시에서 내용을 찾지 못하면 네트워크에서 가져옵니다. 은 캐시에 넣습니다. 이것이 코드에서 수행 할 수있는 유일한 작업입니다.

here과 동일한 문제를 설명해야합니다.

코드의 흐름은 서비스 근로자와 함께 시작하는 모든 사람에게 새로운 것이지만, 실제로 생각해 보면 꽤 직관적입니다. 당신은 그것을 읽을 수 있으며 그것이 무엇을하는지 알려줍니다. 코드를 넣은 선을보세요. 그 라인의 주변을보세요. 무슨 일이야?

희망이 있습니다.

+0

정말 고마워요. 위의 링크에는 훌륭한 정보가있었습니다. 문제는 가져 오기 기능과 관련이 있습니다. –