這是關于在Service Workerfetch內部處理事件時的一些行為。當fetch調用事件處理程序內部時fetch(),fetch事件似乎不會再次觸發。這實際上很好,但我仍然想知道為什么這沒有發生。我查看了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; }); }); }) );});我自己嘗試過該代碼,并且執行fetch()了對(在||)之后的調用,但沒有再次觸發事件處理程序。為什么不?另外,一些解釋這一點的頁面鏈接將不勝感激。
Service Worker 獲取事件:為什么沒有無限循環?
至尊寶的傳說
2023-08-05 10:17:24