【发布时间】:2016-12-20 01:05:06
【问题描述】:
我正在尝试构建一个基本的服务工作者来处理从我的网站发送的所有 AJAX 请求。
Service Worker 订阅了 fetch 事件。我可以处理所有发送的请求,但在第一次安装 service worker 时它不起作用。
一旦安装了 service worker,如果我刷新网页,那么 fetch 事件处理程序就会工作。
我希望我的服务人员从一开始就获取所有请求。有可能吗?
这是我的代码:
index.html
<!DOCTYPE html>
<html>
<body>
<h2>Service Worker Demo Page</h2>
<script type="text/javascript">
if (navigator.serviceWorker) {
navigator.serviceWorker.register('./sw.js')
.then(function (registration) {
console.debug('Registration within scope %s. More details %O', registration.scope, registration);
return fetch('https://www.google.com');
})
.then(console.info)
.catch(console.warn);
}
</script>
</body>
sw.js
self.addEventListener('fetch', function (e) {
console.info('%s request to %s. More details: %o'
, e.request.method
, e.request.url
, e
);
});
【问题讨论】: