HTML5 Web Worker(多线程处理)
HTML5 Web Worker 是 HTML5 为 JavaScript 提供的一个多线程解决方案。一个 Web Worker 是一个在后台运行的 JavaScript 程序,不会干扰用户界面。这样可以在后台处理耗时的任务,而不会阻塞用户界面。
以下是一个简单的示例,展示如何使用 Web Worker 来进行简单的数值求和计算。
首先,创建一个名为 worker.js
的 Web Worker 脚本文件:
// worker.js
onmessage = function(e) {
console.log('Worker: 开始计算...');
let sum = 0;
for (let i = 0; i <= e.data; i++) {
sum += i;
}
console.log('Worker: 计算完毕');
postMessage(sum);
}
然后,在主 JavaScript 文件中,创建一个 Web Worker 并与之通信:
// main.js
const worker = new Worker('worker.js');
worker.onmessage = function(e) {
console.log('来自 Web Worker 的消息: ' + e.data);
};
// 向 Web Worker 发送消息
worker.postMessage(1000000);
在 HTML 文件中引入这两个 JavaScript 文件:
<!DOCTYPE html>
<html>
<body>
<script src="main.js"></script>
</body>
</html>
在这个例子中,主 JavaScript 文件创建了一个 Web Worker 并发送了一个数值 1000000
给它。Web Worker 接收到这个数值后,在 worker.js
中执行了一个简单的求和计算,并将结果发送回主 JavaScript 文件。这个过程不会阻塞用户界面,可以用于在后台执行耗时的任务。
评论已关闭