2011-05-03 77 views
2

我最近聽說定義多線程JavaScript的API的Web Workers規範。但是,在處理客戶端腳本很長一段時間(以及事件驅動的範例)之後,我並沒有真正看到使用多線程的一點。我們真的需要多線程JavaScript嗎?

我可以看到JavaScript引擎和瀏覽器渲染引擎如何從多線程中受益,但我真的沒有看到將這種功能交給應用程序員很多好處。

+1

這應該至少是一個社區wiki。 – Amadan 2011-05-03 23:46:08

+0

我同意你的看法,我認爲現在並不需要它,因爲一切似乎都是事件驅動的。但如果範式發生變化,我可以看到它的需要。 – MattK311 2011-05-03 23:53:56

+0

你可以沙箱中的一塊沉重的代碼,以保持'主'窗口響應。在需要重新繪製屏幕或其某些部分之前,需要進行大量計算的任何操作都可以在單獨的線程中運行。你永遠不需要它 - 但你不需要蛋糕,無論是... – kennebec 2011-05-04 00:00:49

回答

4

維基百科的文章很好地回答了你的問題。

將權力授予我們的開發人員,以便我們可以專門將任何會對用戶造成干擾的任務卸載到網絡工作者。瀏覽器不知道哪些腳本是您的自定義界面正常工作所必需的,但您確實需要。

如果您有一個腳本可以阻止網頁呈現10秒,但對網站無效,您可以將其卸載到網絡工作者。這樣做可以讓用戶與頁面交互,而不是強迫他們等待該腳本執行10秒鐘。在某種程度上,它就像AJAX一樣,可以在界面加載後注入事物,以免延遲用戶的交互。

+0

哪裏可以得到這個'維基'的鏈接我找不到它 – Ibu 2011-05-03 23:58:45

+0

它在上面的OP的帖子。 http://en.wikipedia.org/wiki/Web_Workers – simshaun 2011-05-04 00:01:21

+0

我明白了你的觀點,但我能想到的唯一一個計算密集型任務就是呈現3D ...應該將其卸載到引擎本身。 – 2011-05-04 00:09:47