Web Worker运行的执行流程分析

258 阅读1分钟

web worker 运行的执行流程分析

HTML页面: 判断当前浏览器是否支持Worker

支持:
        a. 创建Worker对象(Worker文件)
        b. postMessage()方法传递参数
        c. onmessage=function(e){} 接收结果
        
不支持:文本提示本浏览器不支持Worker

Worker文件

importScripts('xx.js');
onmessage = function(e){
    a. 接收参数(e.data)
    b. 完成对应的业务逻辑
    c. portMessage() 传递结果给Worker对象
}
注:Worker 对象内存结构
    Woker 对象: onError
    onMessage
    proto => WorkerPrototype:postMessage()
    terminate()
    onmessage 、onerror
    addEventListener()、 removeEventListener()

WorkerGlobalScope 对象:
    a. self :对全局对象自身的引用;
    b. 计时器方法:setTimeout() 、clearTimeout() 、setInterval() 、 clearInterval();
    c. location属性,描述传递给Worker()构造函数的URL;
    d. navigator属性 , 指向一个对象,该对象拥有的属性和Window的Navigator对象拥有的那些属性类似;
    e. onerror属性;
    f. addEventListener()、 removeEventListener();
    g. XMLHttpRequest()
    h. close().

set: (2016-09-13 10:46:41)