2017-10-18 91 views
0

極其簡單的情況。我試圖做網絡優先緩存,因爲內容是可變的。但是,服務工作者似乎是從磁盤緩存而不是網絡提供服務。它似乎甚至不檢查服務器的更新(在Chromium中)。見附件截圖。服務人員提取不會發出網絡請求

這裏是我的網頁:

<html> 
    <body> 
    <script> 
     function printFile() { 
     fetch('file.txt').then(resp => resp.text()).then(x => console.log(x)); 
     } 

     if ('serviceWorker' in navigator) { 
     navigator.serviceWorker.register('sw.js') 
      .then(function(reg) { 
      // registration worked 
      console.log('Registration succeeded. Scope is ' + reg.scope); 

      navigator.serviceWorker.ready.then(printFile); 
      }).catch(function(error) { 
      // registration failed 
      console.log('Registration failed with ' + error); 
      }); 
     } 
    </script> 
    </body> 
</html> 

和服務人員:

self.addEventListener('install', function(event) { 
    event.waitUntil(self.skipWaiting()); 
}); 

self.addEventListener('activate', function(event) { 
    event.waitUntil(self.clients.claim()); 
}); 

self.addEventListener('fetch', function(event) { 
    console.log('Fetching ' + event.request.url); 
    event.respondWith(
    fetch(event.request) 
); 
}); 

我怎麼能強迫我的服務人員,以向服務器請求獲取的file.txt一個新的副本?

enter image description here

回答

相關問題