【发布时间】:2016-03-02 22:21:12
【问题描述】:
我正在使用 Chrome 稳定版 46。
我有一个非常基本的网站。一个按钮。单击该fetch('a') 和一个打开b 的<a> 标签。 url a 和 b 都不存在,我打算在 service worker 中捕获它们并返回一个 new Response()。
如果我点击获取a 的按钮,服务人员不会参与其中,我会收到 404 错误。
但是,如果我点击指向b 的链接,服务工作者会获取并返回响应。
问题:为什么 Service Worker 没有收到 fetch('a') 请求的任何 FetchEvent?
查看以下文件
HTML
<html>
<body>
<p><button onclick="fetch('a');">fetch a</button></p>
<p><a href="b">go to b</a></p>
<script src="js.js" defer></script>
</body>
</html>
js.js
navigator.serviceWorker.register('sw.js');
sw.js
self.onfetch = function(event) {
var request = event.request;
event.respondWith(
caches.match(request).then(function(response) {
return new Response('here is your onfetch response');
})
);
};
【问题讨论】:
-
为什么你有一个既异步又延迟的脚本?
-
@DanielHerr 腰带和牙套。
标签: javascript asp.net-web-api fetch service-worker fetch-api