草庐IT

cloudflare-workers

全部标签

javascript - 如何将 service worker 与 FCM 一起用于推送通知

我正在尝试将serviceworker与Firebase结合使用以在chrome上实现推送通知。我的网络应用程序中有一个list文件和一个sw.js文件。我在Firebase中创建了一个项目,并且测试了注册和发送通知。这一切都很好,除了在收到通知时数据为空。我不明白为什么,也没有任何有用的资源(据我所知!)。这是我的服务worker文件:self.addEventListener('push',function(event){console.log('Pushmessage',event);vartitle='Pushmessage';event.waitUntil(self.regi

javascript - 如何使用 Service Worker 缓存外部 URL?

我一直在使用GoogleWebStarterKit(https://github.com/google/web-starter-kit)并且有一个小的渐进式Web应用程序在工作,但我坚持一件事:从外部CDN缓存静态文件。例如。我正在使用https://fonts.googleapis.com/icon?family=Material+Icons中的MDL图标我看不到缓存请求的方法,因为服务worker仅响应我的应用程序域中的URL。我看到的选项:1.下载文件并将其放在vendor文件夹中。优点:易于设置SW缓存。缺点:文件不会随着新图标的添加而保持最新(尽管这并不重要,因为我的代码只会

javascript - 如何更新 PWA 中的 Service Worker 缓存?

我将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

javascript - Web Worker 的消息有多快?

我想知道与webworker之间的传输是否会成为瓶颈。我们应该在触发任何类型的事件时发布消息,还是应该注意并尽量限制两者之间的通信?让我们举个例子。如果我有一个动态构造的巨大数组(例如,来自mousemove或touchmove的手势识别器的接触点数组),传输数据是否更有效迭代——即我们一收到每个元素就发送它,让工作人员将它们存储在它的一边——或者最好将它们存储在主线程上并在最后一次发送所有数据,特别是当一个人不能使用一个可转移的对象? 最佳答案 那么您可以在Uint16Array1中缓冲数据。然后您可以做一些小技巧,移动数据而不是

javascript - 如何防止同一个 Service Worker 在多个页面上注册?

我有一个serviceworker脚本,它在多个站点级别重复注册。换句话说,同一个服务人员注册了www.site.ca/、www.site.ca/text-text、www.site.ca/example-example等。该站点基于php构建,根据内容生成不同的url,类似于API。serviceworker注册在这些页面上的原因是因为大多数站点流量都落在这些页面上而不是主页上。结果是同一个serviceworker在不同的页面上注册了不同的id。有没有人有办法防止在多个子级别上多次注册同一脚本?编辑:ServiceWorker的目的是设置通知,即使用户不在网站上也是如此。此外,我遇

javascript - 可靠地检测脚本是否在 web worker 中执行

这个问题在这里已经有了答案:AnystandardmechanismfordetectingifaJavaScriptisexecutingasaWebWorker?(5个答案)关闭8年前。我目前正在用JavaScript编写一个小库,以帮助我将一些繁重的计算委托(delegate)给网络worker。出于某些原因(主要是为了能够在UI线程中进行调试,然后在worker中运行相同的代码)我想检测脚本当前是在worker中运行还是在UI线程中运行。我不是经验丰富的JavaScript开发人员,我想确保以下函数能够可靠地检测我是否在worker中:functiontestenv(){try

javascript - Web Worker 被 Chrome 中的主线程阻塞

我有一个WebWorker.我希望用它进行定期网络请求。我特别想要的一件事是即使主JS执行线程被阻塞(例如被window.alert)也发出这些请求。我使用的是Chrome38。但是,当我尝试在worker中发出网络请求时,这些请求似乎被UI线程阻止了。这是一个人为的例子来说明这个问题:基础.js:varworker=newWorker("/worker.js");setTimeout(function(){console.log("beginblocking");varstartDt=newDate();varblockPeriod=5000;vara;//Obviouslywe'd

javascript - 是否可以像所有针对普通 HTTP 请求的示例一样在 Service Worker 中拦截和缓存 WebSocket 消息?

我知道您可以从ServiceWorker本身内部创建WebSocket连接;我的问题更多的是,您是否可以像往常一样从您的应用程序使用WebSocket,并让ServiceWorker拦截/缓存WebSocket请求,就像它对普通HTTP获取请求所做的那样?这是一个拦截和缓存来自ServiceWorker的普通HTTP请求的示例。self.addEventListener('fetch',function(event){//Ifamatchisn'tfoundinthecache,theresponse//willlooklikeaconnectionerrorevent.respond

javascript - 在 Chrome 的 Worker 中使用 `console.log` 会打印两次相同的消息

与标题差不多。更奇怪的是,这只会在您在新选项卡中运行程序时发生,如果您只是刷新页面,每个console.log只会有一条消息。这是main.js:constworker=newWorker('worker.js');这是worker.js:console.log('Foobar!');这是index.html:WebWorkersFirefox不会发生同样的情况。我使用的是Chrome版本65,更奇怪的是,重复的消息似乎不属于“上下文”下拉列表中列出的任何上下文,因此当我尝试过滤除worker.js发送的消息之外的所有控制台消息时,列出的唯一消息是第一条消息,第二条消息(副本)似乎不属

javascript - Service Worker 不更新

我在我的网站上安装了一个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,