Web Worker简介

  1. Web Worker是 运行在后台的javascript,也就是说worker其实就是就一个js文件对象,worker可以让他所包含的js代码运行在后台

  2. 特点:

    1)充分利用多核CPU的优势
    2)对多线程支持非常好
    3)不会影响页面的性能
    4)不能访问web页面和DOM API
    5)所有的主流浏览器均支持web worker,除了Internet Explorer

  3. Worker提供API

    1)检测当前浏览器是否支持Worker

     typeof(Worker) !== "undefined"
    

    2)创建Worker文件

      创建普通的 JS 文件,都可以用于 Web Worker 文件
    

    3)创建Web Worker对象

       var worker = new Worker("myTime.js");
    
       参数就是在第二步创建的js文件的路径
    

    4)worker事件

      onmessage事件
    
        用于监听 Web Worker 传递消息,通过回调函数接收传递的消息,通过回调函数的事件对象data 属性可以获取传递的消息
    
      postMessage()
    
        w.postMessage( “worker success.” );
    
        通过postMessage() 方法传递消息内容
    
      w.terminate();
    
      在HTML页面中,通过调用 Web Worker 对象的terminate( ) 方法终止 Web Worker。
    
      onmessage事件,当执行postMessage事件时会触发
      postMessage()方法
      terminate()方法
    
例子
   
   
      
    
    
    
    
      
      
       

售票系统

售票窗口1
售票窗口2
售票窗口3
售票窗口4
售票窗口5
getTicket.js部分的代码 var rand = Math.floor(Math.random()*101); //模拟10%的概率抢到票 if(rand<10){ postMessage(1); }else{ postMessage(0); }
使用worker实现计时



    
    


    
    
    
time.js部分的代码 var time = 0; function timer () { time++; //4.从worker中发送数据,worker对应js中的全局变量是worker对象 postMessage(time); setTimeout(timer,1000); } timer();

你可能感兴趣的:(Web Worker简介)