首页 > 试题广场 >

Web Worker为Web内容在后台线程中运行脚本提供了一

[问答题]
Web Worker为Web内容在后台线程中运行脚本提供了一种简单的方法。请列举出Web worker的常用API并列举至少1个Web Worker的常见用途。
postMessage(data) -> 子线程与主线程之间互相通信使用的方法,传递的data为任意值;
terminate() -> 主线程中终止worker,此后无法再利用其进行消息传递;
onmessage -> 当有消息发送时,触发该事件;并且消息发送是双向,消息内容可通过data来获取;
大数据的处理:这里所说的大数据处理,并不是指数据量非常大,而是要从计算量来看,通常用时不能控制在毫秒级内的运算都可以考虑放在web worker中执行。

高频的用户交互:高频的用户交互适用于根据用户的输入习惯、历史记录以及缓存等信息来协助用户完成输入的纠错、校正功能等类似场景,用户频繁输入的响应处理同样可以考虑放在web worker中执行。



编辑于 2023-02-07 20:06:14 回复(0)

常用API:
  1. new Worker(url),用于创建一个worker实例,url指向一个js文件,浏览器会创建一个单独的线程来执行这个文件
  2. worker.prototype.postMessage(),用于从worker向主线程传递消息,第一个参数是被传递的消息,可以传递对象/基础类型的数据
  3. onmessage / addEventListener('message', callback),可以用在主线程或worker上,用于监听message事件,接收对方传递来的消息,消息被放置在事件对象的data属性中
 
常见用途:
  1. 处理密集型数***算
  2. 大数据排序
  3. 数据处理,如压缩、音频处理等
  4. 用于执行网络操作,如Ajax、WebSocket


编辑于 2020-08-17 17:33:31 回复(0)