草庐IT

worker_connections

全部标签

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 - Connect 不能与 Redux-react 中的 StateLess 组件一起使用

我正在从其他组件调度一个Action,并且商店正在使用svgArr属性进行更新,但是尽管以下无状态组件connect'ed到商店,当svgArr的存储更改时,它不会更新。作为无状态组件,它应该如何表现?还是我做错了什么?constLayer=(props)=>{console.log(props.svgArr);return(hi);};connect((state)=>{return{svgArr:state.svgArr};},Layer);exportdefaultLayer; 最佳答案 您似乎正在导出Layer而不是Laye

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 - 我可以捕获 "can' t establish a connection"失败的 websocket 连接错误吗?

我需要测试是否已建立与我的websocket服务器的连接。此时,我可以连接到服务器,但我希望能够捕捉到该服务器不可达的可能性,所以这个问题是关于当websocket连接无法建立或超时时该怎么办出。仅使用Firefox中的基本websocket代码,它将在大约20秒后超时并调用我的错误处理程序。但它也会抛出一个JavaScript错误(至少对我使用Firebug而言)出现在浏览器中。然后日志显示:Firefoxcan'testablishaconnectiontotheserveratws://192.168.0.1/.到目前为止我尝试了什么:通过添加我自己的window.timeout

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,

javascript - 获取脚本时发生未知错误(Service Worker)

离线时,我的服务人员收到以下错误:(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

javascript - Web-Worker中同步等待消息

有没有什么方法可以在web-worker中同步等待或检查新消息?我有大量复杂的代码(从emscripten编译的LLVM),我无法围绕回调进行重构。我需要确保某一行之后的代码在我收到并处理来自UI线程的消息之前不会执行。如果我用while循环阻塞,事件循环永远不会运行,所以我无法接收消息。 最佳答案 这是我在使用Pyodide时也遇到的问题.我想从主线程“同步”调用一个函数。一个解决方案涉及Atomic和SharedArrayBufferAPI。从webworker的Angular来看,这看起来像下面这样postMessage主线程

javascript - 关于 web worker 同步请求的看法

我想知道您对此有何看法。是否推荐在webworker中使用同步请求(XMLHttpRequest)?我能发现什么问题?我一直在我的应用程序中对此进行测试,但没有发现任何问题。但我害怕这种同步行为,因为以前使用jQuery和AJAX的经验。我的应用程序从数据库中的多个表中获取大量数据,这需要时间。对于从表中检索到的每一组数据,我需要立即对其进行处理,以免拖延整个过程。同时,用户正在与浏览器交互,所以它可以被阻止,我认为webworkers可以正常工作。您认为这是一个好的解决方案吗?或者我应该尝试使用异步请求吗?谢谢。 最佳答案 我没有