2010-03-15 28 views

回答

11

JavaScript does not support native multithreading在當前網頁瀏覽器中。即使是這樣,我打賭IE 6不會支持它:)

在多個iframe中運行腳本可能是一種解決方法,如Jason Kester suggested in another answer

此外,對於現代瀏覽器,你可能有興趣在檢查出Web Workers,但是這是肯定的東西出了IE 6的聯賽:

+2

+1(這是一件好事,它沒有,我認爲;-) – ChristopheD 2010-03-15 22:28:26

+1

網絡工作者呢?不是在IE6,顯然,但仍... – luiscubal 2010-03-15 22:40:40

+0

@luiscubal是好點。事實上,他們是在我原本與之聯繫的職位中提到的。修改我的答案以包含更多信息。 – 2010-03-15 22:45:05

1

谷歌Gears是,與IE6的作品,包括一些所謂WorkerPools插件。 Google Gears似乎不再像以前那樣非常活躍,因爲它試圖將Gears的大部分想法轉化爲HTML5。 WorkerPools基本上是後臺進程,不共享狀態,只通過消息進行通信。在HTML5中,這已經變成了WebWorkers。你可以在這裏找到更多的信息:http://code.google.com/apis/gears/api_workerpool.html

2

那麼,HTML5是想出Web-Workers。但我非常懷疑有一個庫創建一個在IE6中使用它的包裝。

Does my browser support web workers?

+0

我很驚訝沒有人提到網絡工作者! – 2010-03-15 22:45:35

+0

+1提他們:) – 2010-03-15 22:54:41

1

如果你只是想編寫同步代碼,從而避免所有的地方來處理書寫的事件處理程序,你可以嘗試:Strands

3

中的IFrame運行您的任務

假設您正在討論客戶端的多任務處理,您可以在頁面上打開n個框架,每個框架指向您域中的頁面。

有很多方法可以從那裏構建它。也許最簡單的做法是讓每個框架都包含一個.js文件。它打電話回家parent.readyToGo()或其他,並分配一些工作。工作方法可以調用像parent.taskFinished()這樣的方法來完成報告。

最重要的是,不要聽任何人告訴你不要在IE6上運行您的任務關鍵型多線程JavaScript應用程序。我相信你有很好的理由:)