我正在使用serviceworkers
进行一些研究,我在代码中添加了serviceworkers
:
sw.js:
self.addEventListener('install', function (evt) {
console.log("the worker was installed properly!");
});
self.addEventListener('activate', function (evet) {
console.log("it has actived properly");
});
self.addEventListener('fetch', function (evt) {
console.log("fetching some data");
console.log(evt);
});
我使用node(express)来服务代码,这是我的文件结构:
-bin
-models
-public
-mobile
-images
-js
-css
-fonts
sw.js
manifest.json
以下是我注册服务工作者的方式:
if ('serviceWorker' in navigator) {
navigator.serviceWorker.register('/mobile/sw.js', {scope: '/mobile/'}).then(function(reg) {
console.log(reg);
if(!navigator.serviceWorker.controller){
console.info("controller is still none for some reason.");
return;
}
console.log("worker is registered properly!");
}).catch(function (err) {
console.error("Something is not right, worker wasn't registerd");
console.log(err);
});
}
我的索引页面所在的URL是:localhost:3000 / mobile。
问题是navigator.serviceWorker.controller
始终保持为空,工作人员注册,我得到了一个控制台。但是当我检查navigator.serviceWorker.controller
时,它保持为空。
我不确定我在这里失踪了什么。