当前位置: 首页 > news >正文

JavaScript Web Workers使用流程

背景

Web Workers是一个API,允许在浏览器中运行后台处理任务,而不影响用户界面(UI)线程的稳定性。

Web Workers 可用于消除阻止 UI 的耗时任务,如图表生成,物理模拟或数据分析等:

使用 Web Workers

启动和终止

一个web worker 由一个文件创建,它正常情况下位于主线程之外。可以使用 JavsScript 的 Worker() 构造函数来创建并启动 Worker:

const worker = new Worker('worker.js');

要终止 Worker,请使用 terminate() 方法:

worker.terminate();

通信

Web workers 使用 消息传输 机制 (message-passing mechanism) 来与主线程进行通信:

  • 主线程可以通过 postMessage() 方法将消息发送给 Worker:

worker.postMessage('Hello World!');
  • Worker 可以使用 onmessage 处理函数来接受主线程发送的消息:
worker.onmessage = function(event) {console.log(event.data); // Prints 'Hello Worker!'
});

示例

以下代码演示了如何使用 web workers 运行一个耗时任务:

主文件(main.js)

var worker = new Worker('worker.js');// Send a message to the worker
worker.postMessage('start');// Handle messages sent by the worker
worker.onmessage = function(event) {console.log('Received message from worker', event.data);
};

工作者文件(worker.js)

// Receive messages from the main script
onmessage = function(event) {if (event.data == 'start') {// Run expensive taskvar result = doExpensiveTask();    // Send message to main script postMessage(result);}
};
http://www.lryc.cn/news/22129.html

相关文章:

  • 数据结构与算法(五):优先队列
  • 二叉树的前序遍历-java两种方式-力扣144
  • 浅析 Redis 主从同步与故障转移原理
  • MyBatis学习笔记(七) —— 特殊SQL的执行
  • 计算机组成原理(1)--计算机系统概论
  • jdbc模板的基本使用
  • JPA 注解及主键生成策略使用指南
  • 【C语言刷题】找单身狗、模拟实现atoi
  • 前端必会面试题指南
  • C 语言—— 数组
  • Oracle-RAC集群主机重启问题分析
  • Python每日一练(20230227)
  • Scratch少儿编程案例-算法练习-存款收益计算
  • 【Linux驱动开发100问】Linux驱动开发工程师在面试中常被问到的问题汇总
  • 每日学术速递2.27
  • 【数据库系统概论】基础知识总结
  • 简单移动平均在量化中的应用(附Python实战代码)
  • ChatGPT提高你日常工作的五个特点,以及如何使用它来提高代码质量
  • spark datasourceV1和v2
  • 10种聚类算法的完整python操作示例
  • 构建合作伙伴生态系统刻不容缓
  • 剑指 Offer 55 - I. 二叉树的深度(java解题)
  • 威胁行为者将旧漏洞武器化以发起勒索软件攻击
  • 2023北京健博会/第十届中国国际大健康产博览会
  • Python学习笔记之环境搭建
  • 死锁的总结
  • 强化学习RL 01~ 数学基础
  • Java的运算符
  • 扫地机器人(蓝桥杯C/C++)
  • 如何理解API?API 是如何工作的?(5分钟诠释)