iShare 技术 Web Worker_20110610_Sun

12
JavaScript Web Worker by Sun 2011.6.10

description

Web Worker开启JavaScript多线程时代

Transcript of iShare 技术 Web Worker_20110610_Sun

Page 1: iShare 技术 Web Worker_20110610_Sun

JavaScript Web Worker

by Sun

2011.6.10

Page 2: iShare 技术 Web Worker_20110610_Sun

单线程假死

大数据量计算

Page 3: iShare 技术 Web Worker_20110610_Sun

setTimeout?setInterval?

Page 4: iShare 技术 Web Worker_20110610_Sun

Web Worker"多线程 "时代

Page 5: iShare 技术 Web Worker_20110610_Sun

Work NOW -- 主线程// 将要后台运行的一段代码var worker = new Worker("worker.js");

// 如何处理后台 worker返回的结果worker.onmessage = function (event) { console.log(event.data);}

Page 6: iShare 技术 Web Worker_20110610_Sun

Work NOW -- 子线程/** * 得到主线程传过的消息 , 启动线程进行大数据计算 . * mainThread.postMessage -> workerThread.onmessage */onmessage = function (event) { // 从 event.data中取得主线程传来的数据 var mainThreadData = event.data;

// 将结果传递给主线程 // workerThread.postMessage -> mainThread.onmessage postMessage(mainThreadData);};

Page 7: iShare 技术 Web Worker_20110610_Sun

本地 XHR?

主线程子线程mainThread.js

worker.js

postMessage(data)

postMessage(data)

onmessageonm

essage

子线程 1worker1.js

子线程 2worker2.js

Page 8: iShare 技术 Web Worker_20110610_Sun

NO DOM

Page 9: iShare 技术 Web Worker_20110610_Sun

Browser Support• Firefox 3.5(1.9.1)• Opera 10.60• Chrome 3• Safari 4

Where is Internet Explorer ?

Page 10: iShare 技术 Web Worker_20110610_Sun

Q&A

Page 12: iShare 技术 Web Worker_20110610_Sun

谢谢 !