Cocoscreator 2.4.x 使用WebWorker

参考链接: https://www.w3cschool.cn/nwfchn/9jvrmozt.html
参考链接: https://blog.csdn.net/qq_28387069/article/details/112316133
参考链接: https://blog.csdn.net/weixin_32067105/article/details/112672917
参考链接: https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers

一.Worker

Web Worker 为 Web 内容在后台线程中运行脚本提供了一种简单的方法。线程可以执行任务而不干扰用户界面。此外,他们可以使用XMLHttpRequest执行 I/O (尽管responseXML和channel属性总是为空)。一旦创建, 一个 worker 可以将消息发送到创建它的 JavaScript 代码,通过将消息发布到该代码指定的事件处理程序(反之亦然)。

一个 worker 是使用一个构造函数创建的一个对象 (e.g. Worker()) 运行一个命名的 JavaScript 文件 - 这个文件包含将在工作线程中运行的代码; workers 运行在另一个全局上下文中,不同于当前的window. 因此,在 Worker 内通过 window获取全局作用域 (而不是self) 将返回错误。

在专用 workers 的情况下,DedicatedWorkerGlobalScope 对象代表了 worker 的上下文(专用 workers 是指标准 worker 仅在单一脚本中被使用;共享 worker 的上下文是SharedWorkerGlobalScope (en-US)对象)。一个专用 worker 仅仅能被首次生成它的脚本使用,而共享 worker 可以同时被多个脚本使用。

使用

新建一个脚本用来调用Worker

mainThread.ts

	let Worker = new Worker("Worker.js");
	Worker.onmessage = function(e){
		//接收worker线程发过来的消息
	}
	Worker.postMessage("Main Thread to Worker");//向worker线程发送消息


这个Worker.js文件必须放在Cocoscreator编辑器的目录下面,不然会找不到。路径如下:
C:\CocosDashboard_1.0.20\resources.editors\Creator\2.4.9\ resources\static\preview-templates

接下来是Worker.js部分

Worker.js

self.onmessage = function(e){
	//接收创建当前worker的线程发过来的消息
}
self.postMessage("Worker Thread to Main Thread")// 向创建当前worker的线程发送消息

以上步骤就实现了Cocoscreator中主线程与Worker线程通信的功能了

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值