javascript是单线程的,所以就要考虑很多文件的时候里带来的加载问题,会影响性能。
此时就会用到HTML5的web workers:让web应用程序具有处理后台能力。
web workers的局限
- 执行的脚本不可以访问该页面的window对象,即不可以访问页面以及不可以操作DOM。
- 会消耗CPU的周期。
如果创建web应用程序的时候需要程序执行一些后台数据处理,但又不希望这些数据处理任何影响web本身的交互性,那么通过web worker去执行数据处理任务,同时添加一个事件监听去监听它发出的消息。
主要知识点:
- 工作机制
- 浏览器支持
- 使用方法以及通信
(1)浏览器的支持情况
查看支持情况
(2)使用方法
创建web worher对象,传入希望执行的js代码;
在页面中设置事件监听器,用来监听由web worker发来的消息和错误信息;
利用postMessage函数来建立页面与web worher之间的通信。
浏览器检测
if(typeOf(Worker) !== "undefined"){xxx} //Worker大写w
// typeOf(Worker)会返回全局变量window的Worker属性。
使用方法比较简单:
建立worker对象
worker = new Worker("url_js") //括号的参数为要执行的js文件的相对或者绝对路径。
在worker对象中,不可以使用