红杉资本|广州蓝景技术分享—开发语言JavaScript之多线程( 二 )


WorkerGlobalScope是一个供Worker使用的全局对象 , 因此该对象上的postMessage方法和onmessage属性在worker代码中使用的时候 , 看起来像是全局函数和全局变量 。 因为WorkerGlobalScope是Worker的全局对象 , 所以它有所有核心JavaScript全局对象拥有的那些属性 , 诸如JSON对象、isNaN()函数和Date()构造函数 , 最小化的navigator 对象 , 包括onLine 、appName 、appVersion 、userAgent 和platform 属性; 只读的location 对象; setTimeout() 、setInterval() 、clearTimeout() 和clearInterval() 方法;XMLHttpRequest 构造函数 。
WorkerGlobalScope对象上定义了一个很有意思的全局函数 , importScripts , Worker可以使用此方法来加载任何需要的库代码 。
实例:
test2.js文件
var num = 88888;
test.js文件
importScripts(“test2.js”);
console.log(num);//88888
在test.js文件通过importScripts引入test2.js文件 , 即可访问到test2脚本里面的变量 。
注意:importScripts是一个同步的方法 , 他直到所有的脚本都已经载入并运行完成才会返回 。
目前支持web workers的浏览器有IE10+、Firefox3.5+、Safari4+、Opera 10.6+、chrome和ISO版的Safari 。
小结
Web workers:可以运行异步JavaScript代码 , 避免阻塞用户界面 , 在执行复杂计算和数据处理的时候 , 这个API非常有用 , 不然 , 这些任务轻则会占用很长时间 , 重则会导致用户无法与页面交互 。
【红杉资本|广州蓝景技术分享—开发语言JavaScript之多线程】想要了解更多前端技术学习 , 可以关注我们广州蓝景 , 也可以评论区留言!