问题标签 [web-worker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
javascript - HTML5 中 Shared Worker 和 Worker 有什么区别?
阅读此博文后:http ://www.sitepoint.com/javascript-shared-web-workers-html5/
我不明白。aWorker
和 a 和有什么不一样SharedWorker
?
internet-explorer - IE10 出来了,他们谈论“Web Workers”,它将网页中长时间运行的 JS 卸载到一个单独的工作程序中,谷歌浏览器有这个吗?
谷歌浏览器是否会像他们在 IE10 中描述的那样做?还是这里缺少 Chrome?还是不同?
javascript - jQuery 的非 DOM 子集
我希望能够在 Web Worker 中使用 jQuery 中的许多实用方法,其中无法访问window
ordocument
对象。
具体来说,我希望能够使用 、 和整个系统之类$.extend()
的$.ajax()
方法$.Deferred()
。我显然不需要任何 DOM 遍历和操作方法,所以我不是在寻找像 JSDOM 这样的解决方案。
我可以自己提取 jQuery 的非 DOM 部分,但这很难维护。是否有任何可用的 jQuery 发行版或构建脚本来构建非 DOM 部分?
javascript - Web Worker 的无文档画布
有没有画布的实现document.createElement('canvas')
?
我想在网络工作者中使用画布,但我无法通过 将画布数据传递给它worker.postMessage()
,因为画布是 HTMLElement。
另外我不想将画布的 ImageData 传递给网络工作者,因为我不想context2d.drawImage()
手动实现。
javascript - 使用 Web Worker 从文件中获取图像数据
是否可以从 Web Worker 中的文件中解码图像数据,以便我可以将其传递给主线程并使用 putImageData。这大概比只调用 drawImage 更快。
multithreading - 为什么不允许 web worker 修改 dom
我知道web workers
工作作为一个单独的线程而不是,UI thread
但我不明白为什么不允许他们修改DOM
. 我的意思是您可以允许线程间通信并将DOM
数据保存在共享空间中并让web workers
线程修改DOM
. 为什么浏览器不允许这样做?
html - 使用 Shared Worker 的 Chrome 内存泄漏?
SharedWorker
我有一个启动 HTML5脚本的网页。每次重新加载此页面(按 F5)时,Chrome 内存使用量都会增加。
worker 脚本非常简单。每秒(使用setInterval
)一条消息被发送到连接的端口。
每次我按 F5 时,似乎工作进程都会终止并重新启动。这是我所期望的,因为工作人员实际上并没有被多个“文档”共享。但是,我无法弄清楚为什么每次刷新时内存使用量都会增加。
有谁知道为什么会这样?
鉴于每次重新加载页面时内存都会增加,这让我认为我根本无法在 Chrome 中使用共享工作者。有没有人能够做到这一点而没有记忆问题?
更新
这是托管 HTML:
...这是worker.js
:
托管页面启动/连接到共享工作者并输出从它接收到的任何内容。
工作代码保存一个已连接端口的列表,并每秒向它们发送一条消息。
这是简单的东西。然而,每次在 Chrome 中重新加载托管页面时。该选项卡的内存有效负载增加。
下面显示了几次刷新后 Chrome 的内存使用情况:
...再刷新一些后,我达到了 250 MB...
我的想法不多了,认为这一定是 Chrome 中的错误。谁能给我一些指针?
更新 2
禁用我的 AdBlock 扩展似乎可以解决问题:
于是我高兴了一阵子,结果发现内存还是被泄露了。禁用 AdBlock 后,每次页面刷新的泄漏量要少得多。
php - 将工作服务器与 php 应用程序一起使用的指南
我已经构建了一个 PHP 应用程序,并且我读到在调用 api 或执行耗时的操作时使用“worker”+ 队列服务器是最佳实践。
快速搜索教程已经枯竭。我已经使用 codeigniter 构建了我的应用程序,并且我确实对 facebook api 进行了各种调用 + 在整个应用程序中使用基于 php 的图像处理。我唯一想知道的是,如果我正在执行 api 调用或调整我的图像大小,并且用户通常不关心从我的服务器获得响应,直到它完成,队列服务器+worker 将如何帮助我。
什么情况下适合工作人员 + 队列服务器,是否有任何指南可以将这些内容包含在我的应用程序中?最近我在我的应用程序中包含了 memcache,这非常简单。我只是用 memcache 处理程序包装了我的 sql 查询。
html - 网络工作者控制台.log
只是我,还是console.log()
对 HTML5 网络工作者的要求太高了?
我知道操作 DOM 会被阻止,因为它有潜在的危险,但是真的有可能console.log()
被多线程工作人员恶意利用吗?
javascript - JSON 对象变为“空”
我的 html5 网络工作者遇到了问题。web worker postMessage() 的 JSON 对象到调用 worker 的文档级 javascript,它带有 onmessage() 函数。
显然,可以访问“iterationsjob”键,因为工人可以处理相关的数字值,但这似乎只在谷歌浏览器中有效,它仍然会引发错误:
在 Firefox 中,网络工作者根本不工作,似乎也无法访问数字,我得到了成功的 ajax 调用,但它似乎绕过了日志记录步骤,并通过单独的 ajax 调用引发了另一个错误. 因此,我为工作人员编写了一种基本方法将 log() 消息返回到控制台,并从工作人员内部调用它们:
我希望看到以下内容:
相反,我看到:
任何人都可以解释问题是什么以及如何解决它?编辑:我在这里上传了源代码的 zip 。在 Google App Engine 上运行。
谢谢!非常感谢任何帮助。