html

<!doctype>
<html>
    <head></head>
    <body>
        <script type="text/javascript" src="r4.js"></script>
        <script type="text/javascript" src="main.js"></script>
    </body>
</html>

main.js

var worker =new Worker("worker.js");

console.log(r4)

worker.postMessage("hello world");     //向worker发送数据

worker.onmessage =function(evt){     //接收worker传过来的数据函数
    console.log(evt.data);              //输出worker发送来的数据
}

worker.js

onmessage =function (evt){
  var d = evt.data;//通过evt.data获得发送来的数据
 //将获取到的数据发送会主线程

  if (d) {
      get("worker.html", function (dd) {
           postMessage(dd);
      })
  }
}

get方法代表ajax方法。

window对象无法使用
可以使用indexedDB

由于 Web Worker 的多线程行为,所以它们只能使用 JavaScript 功能的子集:

navigator 对象
location 对象(只读)
XMLHttpRequest
setTimeout()/clearTimeout() 和 setInterval()/clearInterval()
应用缓存
使用 importScripts() 方法导入外部脚本
生成其他 Web Worker


裴东来
88 声望1 粉丝

一枚小前端


引用和评论

0 条评论