web worker && webSocket

1.web worker

  在浏览器中JavaScript主线程与UI渲染线程是互斥的。即UI渲染线程会阻塞JavaScript线程的运行。

  web worker允许创建工作线程,并可以与JavaScript主线程同时运行,可以让一些占用大量计算资源的计算在worker线程上运行。

 1 //主线程与worker线程之间的通信 2 //worker 可以利用XMLHttpRequest加载文件, 3  4 var worker = new worker(‘js/worker.js‘); 5 worker.postMessage(args); 6 worker.onmessage = function(event){ 7 document.getElementById(‘result‘).textContent = event.data;}; 8  9 //workerjs10 onmessage = function(e){11 var calcuResult = e.data;12 for(var i=0;i<1000;i++)13 calcuResult+=i;14 }15 postMessage(calcuResult);

2.webSockets

  客户端与服务器端只建立一个TCP连接;webSocket服务器可以推送数据到客户端,这远比HTTP请求响应模式更加灵活更加高效;有更轻量级的协议头,能够减少数据的传送。HTTP 发送请求握手,握手完成后,不再进行 HTTP交互,而是开始 webSocket的数据帧协议。

相关文章