这是关于在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()了对(在||)之后的调用,但没有再次触发事件处理程序。为什么不?另外,一些解释这一点的页面链接将不胜感激。
喵喔喔
相关分类