问题标签 [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 - 从 webWorker 访问 localStorage
WebWorker 可以访问 localStorage 吗?
如果不是为什么不呢?从安全的角度来看有问题吗?
html - Webworker 没有运行
我有以下代码:
工人.js:
该脚本找到了“worker.js”文件,但实际上并没有运行它。我究竟做错了什么?
PS。我正在使用 wamp 托管两个脚本,我正在使用 chrome
javascript - 支持网络工作者的 iPhone 浏览器?
开始意识到 iphone 的 safari 浏览器不支持 javascript web workers(多线程)。我想知道是否有其他支持此功能的 iphone 浏览器。
(我没有 iphone,所以我不能只下载并尝试所有可用的浏览器)
javascript - 有没有办法创建从另一个站点加载源的 SharedWorker?
假设我的 html 文件来自http://foo.com/index.html,其中有一个http://bar.com/bar.js<script>
的标签。在 bar.js 中,我想启动一个 URL 为http://bar.com/worker.js的 SharedWorker 。有没有办法实现这一点(也许像 jsonp 之类的东西)?
javascript - 用于游戏开发的 JavaScript 中的多线程
我正在考虑用纯 JavaScript 和 html5 开发游戏,而不使用任何第三方插件。我面临的问题是我找不到将游戏的不同“模块”分成单独线程的方法,例如渲染作业、游戏逻辑、资产加载等。
Web Workers 似乎能够将代码分离到不同的线程中,但它们的问题是我可以在它们之间传递的信息有限。例如,对于渲染作业,我需要为游戏的每次更新传递整个“世界”,包括所有实体、网格、纹理等,因为工作线程不能共享内存。它可以进行优化,例如仅在初始化时发送静态对象(网格、纹理),然后仅在更新时发送对象的状态(它是世界变换),但它仍然不是
有没有办法在它们之间发送大数据或让它们共享一些对象?还是有完全不同的方法来实现真正的多线程?我知道使用插件/齿轮有更简单的方法来实现这一点,但我只需要使用开放网络中可用的方法;
concurrency - Web workers shared memory
Is it possible to share memory between several web workers for reading and writing(or at least for reading only) in the modern browsers? If not, are there plans to implement such feature?
I know that data may be transferred between workers by using message system, but such way sometimes is not suitable, for instance because of serialization overhead of large data structures.
javascript - HTML5 Web Worker 如何返回多个字符串?
目前,我的 Web Worker 只是将消息作为字符串返回。是否可以返回一个对象?
谢谢!
javascript - 在不牺牲 CPU 资源的情况下在 JavaScript Web Worker 中休眠
概述:我们公司需要可以访问本地资源(RS232 / 串行设备)的 Web 应用程序。经过一些研究和 POC,我们放弃了 ActiveX、Java Applets 等选项,并决定创建本地应用程序(用 C# 编写,稍后将转换为服务并分发给客户)读取串行数据并通过 HTTP 协议提供服务(简单的 TCP 服务器回答必要的标头 + 纯串行数据)。然后 Web 应用程序执行 AJAX 以“http://localhost:8080”读取这些数据。
所有这些都是在一个网络工作者中完成的,在一个while循环中将消息发送到主线程,并将其填充到表单的输入元素中。通过提供静态内容,我可以获得不错的性能。在 Windows 上 Chrome 13 中较旧的 Intel 双核(不是 Core 2 Duo)1.6GHz CPU 上,每秒迭代 300-350 次,网络工作线程占用 5-9% 的 CPU。
问:我现在想要实现的是通过在每个 ajax 请求之后插入某种 sleep() 函数来限制 web worker 中的轮询间隔,例如在开始时尝试 100 毫秒。
在不牺牲线程中的 CPU 资源的情况下,最好的解决方案是什么?
注意:我可以在 TCP 服务器代码中插入一些延迟作为最后的手段。
编辑:
我需要睡在工人里面。示例(为清楚起见过度简化):
html - HTML5:具有多个连接的共享网络工作者
据我了解,HTML5 共享网络工作者的最大好处是它们可以在一个单独的执行线程中接受多个连接。
我的问题是:是否有人与 SharedWorker 建立了多个连接以与 Google Chrome 一起作为单线程工作?我正在使用最新版本 12.0.742.112。
演示:http ://demos.zulius.com/html5/sharedworker
来源(以防演示关闭):index.html, sharedworker.js
该演示建立了 2 个独立的事件侦听器。预期的输出是:
在演示中,两个事件侦听器都正确触发,但 SharedWorker 脚本中未维护连接计数变量。这使我相信与 SharedWorker 的每个连接都在单独的线程中执行。
难道我做错了什么?还是 Chrome 对 SharedWorker 的支持不完全存在?
更新:演示现在可以工作了。
javascript - 大量使用 javascript web-workers 的示例
一年前我已经问过一个关于webworkers的问题,但由于没有建设性而被关闭。好的,让我试试另一种方法。问题是 - 有什么大的(可能不是那么大,但真正的,生产就绪的)网络项目正在使用网络工作者?你能说出哪些例子?