JavaScript的执行环境是单线程的,也就是一次只能执行一个任务。如果遇到多个任务时,只能排队依次执行。
在HTML5中,可以使用Web Worker创建一个后台线程执行一个耗时任务,而不会影响页面响应。
Web Worker技术基本原理就是:在当前JavaScript的主线程中,使用Worker()构造函数新建一个worker实例,然后加载某一个JavaScript文件,发送给一个后台线程来处理(注意,这里是后台线程)。
worker.html
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script>//创建workervar worker = new Worker("worker.js");//向后台线程发送数据worker.postMessage("hello world");//监听后台线程返回的数据worker.onmessage = function(e) {console.log("前台线程收到:" + e.data);};</script></head><body></body></html>worker.js
onmessage = function(e) {//接收前台发来的数据var d = e.data;console.log("后台线程收到:" + d);var str = d.split("").reverse().join("");postMessage(str);};
worker.html
<!DOCTYPE html><html><head><meta charset="utf-8"><title></title><script>var worker;window.onload = function() {var start = document.getElementById("start");var stop = document.getElementById("stop");start.onclick = function() {worker = new Worker("worker.js")worker.onmessage = function(e) {console.log("前台接收:" + e.data);}}stop.onclick = function() {worker.terminate();}}</script></head><body><button id="start">开始</button><button id="stop">停止</button></body></html>worker.js
var i = 0;function handleTask() {i++;console.log("handle:" | i);postMessage(i);}setInterval(handleTask, 1000); 到此这篇关于HTML5 Web Worker(多线程处理)的文章就介绍到这了,更多相关HTML5 Web Worker内容请搜索一聚教程网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持一聚教程网!
ios哔咔网页版直达入口-哔咔漫画iOS网页版一键进入
MyFreeMP3在线音乐官网-MyFreeMP3网页版官方入口
超星学习通网页版登录入口-超星学习通官网登录网址
超星学习通官网快捷登录入口 学习通网页版官方一键直达方法
韩剧再婚皇后全集百度云网盘资源链接分享-韩剧再婚皇后1080p蓝光百度云网盘资源下载
韩剧再婚皇后阿里云盘全集高清1080P资源链接-韩剧再婚皇后免费阿里云盘资源下载4K高清无删减版链接