8
worker.postMessage(data1);
worker.postMessage(data2);
而且webwoker裏面,假設有要處理的問題數量會完成data1
worker.postMessage(data1);
worker.postMessage(data2);
而且webwoker裏面,假設有要處理的問題數量會完成data1
單個工人執行其任務隊列,在時間即一個任務之前worker.postMessage(data2)
塊。試試下面的例子:
<!DOCTYPE html>
<script>
var worker = new Worker('worker.js');
worker.postMessage({ task: 1, iterations: 100 }); // very slow task
worker.postMessage({ task: 2, iterations: 1 }); // very quick task
worker.onmessage = function(event) {
console.log(event.data);
};
</script>
worker.js:
self.onmessage = function(event) {
for (var i = 0; i < event.data.iterations * 1000 * 1000 * 10; i++) {};
self.postMessage("Finished task " + event.data.task);
}
輸出繼電器:
的任務,爲了完成始終,即先緩慢的,那麼一個快。 (如果任務並行執行,第二個任務將首先完成,並有明顯的餘量。)
(只是要明確:調用postMessage始終在其執行上下文中(作爲任何函數調用),但實際上會立即返回「立即「),因爲發佈消息本身的操作非常快,這可能不是你要求的。)
注意:如果您嘗試從本地磁盤加載worker.js,則在Chrome瀏覽器中運行Safari &,Chrome會拋出安全異常。
你的工作人員執行什麼任務?計算?阿賈克斯? – 2012-03-08 16:23:07