jjzjj

javascript - 如何使用 Cloudflare Worker 发出异步请求(非阻塞)

我正在编写一个CloudflareWorker,它需要在我的原始请求完成后对分析服务执行ping操作。我不希望它阻止原始请求,因为我不希望分析系统的延迟或故障减慢或中断请求。如何创建在原始请求完成后开始和结束的请求?addEventListener('fetch',event=>{event.respondWith(handle(event))})asyncfunctionhandle(event){constresponse=awaitfetch(event.request)//Sendasyncanalyticsrequest.letpromise=fetch("https://e

javascript - JavaScript 中的 'Worker' 是什么类型的对象

我对这一切有点困惑......Chrome和Firefox都告诉我不同​​的事情,我在规范中找不到提到它的任何部分,但是:在Chrome中:ObjectinstanceofFunction//trueFunctioninstanceofObject//trueWorkerinstanceofObject//trueWorkerinstanceofFunction//false在FireFox中:ObjectinstanceofFunction//trueFunctioninstanceofObject//trueWorkerinstanceofObject//falseWorkerin

javascript - 服务 worker : how to update the cache when files changed on the server?

您使用什么缓存策略?我阅读了OfflineCookbook,最简单的使用策略是缓存静态内容并忽略API调用。这个策略看起来是这样的:检查请求是否已经在缓存中如果不将请求、响应对添加到缓存返回响应如果服务器端的文件已更改,如何更新缓存?目前,客户端始终获取缓存的结果。这是我的缓存策略的代码://Youwillneedthispolyfill,atleastonChrome41andolder.importScripts("serviceworker-cache-polyfill.js");varVERSION=1;varCACHES={common:"common-cache"+VERS

javascript - 刷新服务 worker 中使用 importScripts 导入的脚本

我有一个网站,其中有一个serviceworker,例如://ImportascriptfromanotherdomainimportScripts('https://example.com/script.js')假设script.js更新了一些新代码,并且由于推送事件激活了serviceworker(用户在此期间没有再次访问我的网站)。importScripts是在每次激活serviceworker时检查更新,还是在首次安装serviceworker时只下载一次script.js?有什么方法可以让服务worker每次收到推送消息时刷新服务worker代码(尤其是导入的脚本)?

javascript - 如何缓存 bust sw-toolbox?

我一直在研究serviceworker和sw-toolbox。两者都是很好的方法,但似乎都有其弱点。我的项目开始使用Google的服务worker方法(link)。我的看法是您必须手动更新版本号以清除缓存。我也可能是错的,但我认为用户访问过的页面不会被缓存。相比sw-toolbox方式,我只需要添加如下代码:self.toolbox.router.default=self.toolbox.networkFirst;self.toolbox.router.get('/(.*)',function(req,vals,opts){returnself.toolbox.networkFirst

javascript - 您可以为 Web Worker 指定名称吗?

如果您启动两个使用相同JavaScript文件的WebWorker,Firefox无法在about:debugging#workers中区分它们。您会得到两个相同的条目(列在“其他worker”下)。为了调试,为webworker分配名称会很方便。例如,在Java中有Thread#setName.JavaScript的网络workerAPI中是否有等效的东西? 最佳答案 Worker()constructor接受一个可选的选项参数,它可以包含一个名称属性,例如:letworkerOne=newWorker(URL,{'name':'

javascript - 等待几个 web worker 完成

我有一个创建多个网络worker的脚本,这些网络worker执行一些工作并在完成时发送消息。问题是我需要从所有这些中得到结果,然后计算出最终的解决方案。在其他工作中,他们计算出问题的部分解决方案,主线程使用这些部分解决方案来生成最终答案。我如何才能等待所有这些线程完成,Javascript中是否有类似Java中的invokeAll的东西?或多或少,我的主线程中有:vardata=[];functioncreateWorker(i){varv=newWorker('js/worker.js');v.postMessage(i);v.onmessage=function(event){da

javascript - 在 Firefox 扩展中传递的面板和 PageMod 内容脚本消息

我正在使用FirefoxAdd-onSDK将Chrome扩展移植到Firefox。扩展包含一个连接到toolbarbutton的面板。(相当于Chrome的popup.html+浏览器操作)和PageMod内容脚本。当面板打开时,它需要向当前选项卡的内容脚本发送消息以接收包含来自该页面的一些信息的对象。我遇到麻烦的部分是如何实际进行消息传递。有人可以帮我指出正确的方向吗?我似乎找不到很多资源来帮助Chrome扩展开发人员学习Firefox插件开发。以下问题在Chrome环境中演示了这个概念。我只是需要帮助将它移植到Firefox。ChromeExtension-MessagePassi

javascript - 打开 Chrome 扩展程序时出现 Service Worker TypeError

当我打开WAVE(Web可访问性评估工具)扩展程序时,我的服务人员在Chrome中抛出此错误:Uncaught(inpromise)TypeError:Requestscheme'chrome-extension'isunsupportedatsw.js:52(anonymous)@sw.js:52Promise.then(async)(anonymous)@sw.js:50Promise.then(async)(anonymous)@sw.js:45Promise.then(async)(anonymous)@sw.js:38我的服务worker代码是:(function(){'us

javascript - 如何通过 worker.onerror 在 promise 中冒泡网络 worker 错误?

我正在处理一个需要在发生错误时进行报告的网络worker。通常,我可以使用worker.onerror来监听从worker抛出的任何错误。但是,当错误发生在webworker的promise中时,我无法弄清楚如何将错误冒泡回worker.onerror。请原谅奇怪的代码片段,因为这似乎是展示工作人员行为的唯一方法。(worker在HTML部分中定义)。functiongetInlineJS(){varjs=document.querySelector('[type="javascript/worker"]').textContent;varblob=newBlob([js],{"typ