<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<script src="js/jquery-1.8.3.min.js"></script>
<script>
//WEB页主线程;
var worker=new Worker("js/worker.js");
//创建一个Worker对象,并向它传递将在新线程中;
worker.postMessage("hello world SB"); //向worker发送数据
worker.onmessage=function(evt){ //接收Worker传过来的数据函数
console.log(evt.data);
alert(evt.data);
}
/*检测浏览器是否支持*/
$(function(){
if(typeof(Worker)=="undefined"){
$("#support").html("浏览器不支持HTML5 Web Worker!");
}else{
$("#support").html("浏览器支持Html5 Web Worker!");
}
});
</script>
</head>
<body>
<div id="support"></div>
</body>
</html>
onmessage=function(evt){
var d=evt.data;
postMessage(d);
}
worker是一个对象,通过构造函数Worker创建,参数就是一个js文件的路径;文件中的js代码将运行在主线程之外的worker线程;
var jsFileURI = JS_FILE_PATH; // js文件路径
var worker = new Worker(jsFileURI);
worker运行在另一个全局上下文中(self),这个全局上下文不同于window,所以不能在woker中访问window和DOM;
该线程分为两种:dedicated worker和shared worker;dedicated worker只能被初始化它的js上下文中使用;shared worker可以在多个js上下文中使用。通常使用的worker是dedicated worker,它的工作情况可以通过chrome的调试工具查看。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有