我试图在服务人员的帮助下使网站脱机,以缓存页面所需的文件。我正在尝试让用户控制他希望缓存的图像。
为此,我正在使用功能sendMessage
function sendMessage(msg){
navigator.serviceWorker.controller.postMessage(msg);
}
Run Code Online (Sandbox Code Playgroud)
其中消息包含与用户希望缓存或取消缓存的图像有关的数据。
服务工作者包含消息事件的事件侦听器:
this.addEventListener('message', function(event){
var data = event.data;
caches.open('v1').then(function(cache){
if(data.add==1)
return cache.add(data.url);
else
cache.delete(data.url).then(function(response)
{
console.log(response)});
console.log(event);
}
)})
Run Code Online (Sandbox Code Playgroud)
我面临的问题是控制器始终为null。
我在babel的网站https://babeljs.io/repl上尝试了双冒号运算符 但是当我尝试使用babel-core和babel-loader在我的代码中解析相同时,会出现以下错误.
Module build failed: SyntaxError: /home/dev/housing-litmus/client/components/StepBuilder.jsx: Unexpected token (30:46)
28 | {
29 | steps.map(function(step){
> 30 | return <StepField id={step._id} addStep={::self.addStep} removeStep={self.removeStep.bind(self)} commands={commands}/>
|
at Parser.pp.raise (/home/dev/node_modules/babel-core/node_modules/babylon/lib/parser/location.js:24:13)
at Parser.pp.unexpected (/home/dev/node_modules/babel-core/node_modules/babylon/lib/parser/util.js:82:8)
at Parser.pp.parseExprAtom (/home/dev/node_modules/babel-core/node_modules/babylon/lib/parser/expression.js:425:12)
at Parser.parseExprAtom (/home/dev/node_modules/babel-core/node_modules/babylon/lib/plugins/jsx/index.js:412:22)
Run Code Online (Sandbox Code Playgroud)
我已经尝试将babel更新为最新的npm版本.