navigator.serviceWorker.controller始终保持为null

时间:2016-04-20 08:37:42

标签: javascript service-worker

我正在使用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时,它保持为空。

我不确定我在这里失踪了什么。

0 个答案:

没有答案