這是關(guān)于在Service Workerfetch內(nèi)部處理事件時(shí)的一些行為。當(dāng)fetch調(diào)用事件處理程序內(nèi)部時(shí)fetch(),fetch事件似乎不會再次觸發(fā)。這實(shí)際上很好,但我仍然想知道為什么這沒有發(fā)生。我查看了https://developers.google.com/web/ilt/pwa/caching-files-with-service-worker#on_network_response上的代碼,如下所示:self.addEventListener('fetch', function(event) { event.respondWith( caches.open('mysite-dynamic').then(function(cache) { return cache.match(event.request).then(function (response) { return response || fetch(event.request).then(function(response) { cache.put(event.request, response.clone()); return response; }); }); }) );});我自己嘗試過該代碼,并且執(zhí)行fetch()了對(在||)之后的調(diào)用,但沒有再次觸發(fā)事件處理程序。為什么不?另外,一些解釋這一點(diǎn)的頁面鏈接將不勝感激。
Service Worker 獲取事件:為什么沒有無限循環(huán)?
至尊寶的傳說
2023-08-05 10:17:24