我一直在使用GoogleWebStarterKit(https://github.com/google/web-starter-kit)并且有一个小的渐进式Web应用程序在工作,但我坚持一件事:从外部CDN缓存静态文件。例如。我正在使用https://fonts.googleapis.com/icon?family=Material+Icons中的MDL图标我看不到缓存请求的方法,因为服务worker仅响应我的应用程序域中的URL。我看到的选项:1.下载文件并将其放在vendor文件夹中。优点:易于设置SW缓存。缺点:文件不会随着新图标的添加而保持最新(尽管这并不重要,因为我的代码只会
我将ServiceWorker与sw-toolbox结合使用图书馆。我的PWA缓存了除API查询(图像、css、js、html)之外的所有内容。但是,如果某天某些文件将被更改怎么办。或者如果service-worker.js将被更改怎么办。应用程序应如何了解文件中的更改?我的service-worker.js:'usestrict';importScripts('./build/sw-toolbox.js');self.toolbox.options.cache={name:'ionic-cache'};//pre-cacheourkeyassetsself.toolbox.preca
我有一个serviceworker脚本,它在多个站点级别重复注册。换句话说,同一个服务人员注册了www.site.ca/、www.site.ca/text-text、www.site.ca/example-example等。该站点基于php构建,根据内容生成不同的url,类似于API。serviceworker注册在这些页面上的原因是因为大多数站点流量都落在这些页面上而不是主页上。结果是同一个serviceworker在不同的页面上注册了不同的id。有没有人有办法防止在多个子级别上多次注册同一脚本?编辑:ServiceWorker的目的是设置通知,即使用户不在网站上也是如此。此外,我遇
我知道您可以从ServiceWorker本身内部创建WebSocket连接;我的问题更多的是,您是否可以像往常一样从您的应用程序使用WebSocket,并让ServiceWorker拦截/缓存WebSocket请求,就像它对普通HTTP获取请求所做的那样?这是一个拦截和缓存来自ServiceWorker的普通HTTP请求的示例。self.addEventListener('fetch',function(event){//Ifamatchisn'tfoundinthecache,theresponse//willlooklikeaconnectionerrorevent.respond
我在我的网站上安装了一个serviceworker,一切正常,除了我推送更新到缓存文件时,事实上;他们永远被捕获,我似乎无法使缓存无效,除非我取消订阅`chrome://serviceworker-internals/constSTATIC_CACHE_NAME='static-cache-v1';constAPP_CACHE_NAME='app-cache-#VERSION';constCACHE_APP=['/','/app/app.js']constCACHE_STATIC=['https://fonts.googleapis.com/css?family=Roboto:400,
JavaScript的Math.random()函数的精度是多少? 最佳答案 Math.random()生成大于等于0且小于1的16位小数的float。 关于javascript-Math.random()的精度,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/3344447/
离线时,我的服务人员收到以下错误:(unknown)#3016Anunknownerroroccurredwhenfetchingthescript我的服务人员看起来像这样:varversion='v1'this.addEventListener('install',function(event){event.waitUntil(caches.open(version).then(cache=>{returncache.addAll(['https://fonts.googleapis.com/icon?family=Material+Icons','https://fonts.goo
今天我在各种浏览器中运行一些单元测试时遇到了一个奇怪的“错误”。在今天之前,我已经在Firefox中多次运行过测试,甚至在IE中运行过,但显然还没有在Chrome(v19-dev)中运行过。当我在Chrome中运行它们时,它始终未能通过一项测试,因为我计算的两个值不匹配。当我真正深入研究正在发生的事情时,我意识到问题在于我假设如果我用100,000个Math.random()值填充一个数组,它们都是唯一的(那里不会有任何碰撞)。事实证明,在Chrome中并非如此。在Chrome中,我始终得到至少两对匹配的值(共100,000个)。Firefox和IE9从未经历过冲突。这是我写的一个js
在我的Angular2应用程序中,我有如下后端服务。getUserInterests(){returnthis.http.get('http://localhost:8080/test/selections').map((res:Response)=>res.json());}调用此服务后,我想在上一个服务成功时调用另一个服务。第二次服务letparams:URLSearchParams=newURLSearchParams();params.set('access_token',localStorage.getItem('access_token'));returnthis.http
我在处理推送通知时遇到了一个陌生的术语:serviceworker控制台。我已经阅读并在浏览器中使用了术语consolelog或webconsole,但我不熟悉术语serviceworkerconsole,我在googlingit之后没有找到合适的答案.谁能解释什么是serviceworkerconsole?如何在谷歌浏览器中访问它? 最佳答案 转到chrome://serviceworker-internals选择任何serviceworker并启动它(如果尚未启动)。点击检查!!轰!你那里有控制台!