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
一個新的副本?