當我在瀏覽器中打開一個網頁,有多少線程開始呈現DOM並執行Javascript代碼?
是否可以使用多線程執行Javascript函數?
當我在瀏覽器中打開一個網頁,有多少線程開始呈現DOM並執行Javascript代碼?
是否可以使用多線程執行Javascript函數?
模擬它您可以使用webworkers
在現代瀏覽器
簡短的回答是否定的,你不能在javascript中運行多線程代碼。
較長的答案是,你可以模擬它。 SO上的這個問題可能會有幫助:Multithreaded JavaScript how to?
Javascript代碼在單個線程中運行。 你不能開始單獨的線程,但你仍然可以使用異步函數來實現像setTimeOut和setInterval。
通常只有一個UI線程,但是您可以在HTML5中與WebWorkers並行運行JS。
,人們有時用另一種想法是讓使用iframe。如果您的應用程序可以建模爲一組iframe(如Facebook),則可以利用此功能。谷歌瀏覽器爲此進行了高度優化。每個框架中的Javascript都在獨立的執行環境中執行,因此可以並行化。
其他瀏覽器如IE,firefox,safari如何?是否提供iframe的優化? – Jeffrey 2012-07-27 04:50:36
是的。每個瀏覽器都在單獨的執行上下文中並行運行每個iframe中的javascript。這是一種非常流行的技術。缺點是瀏覽器必須發出多個HTTP請求,每個幀有x個。通過這些更多的iframes提供的優化:http://www.aaronpeters.nl/blog/iframe-loading-techniques-performance – 2012-07-28 06:01:13
可能重複的[JavaScript多線程](http://stackoverflow.com/questions/7639224/javascript-multithreading),http://stackoverflow.com/questions/2145829,http://stackoverflow.com/questions/ 39879,http://stackoverflow.com/questions/2734025 ... – 2012-07-26 12:16:59