這次帶給大家單線程JS與多線程瀏覽器的使用,單線程JS與多線程瀏覽器的使用的注意事項有哪些,下面就是實戰案例,一起來看一下。
JS語言是單線程的,瀏覽器只分配給js一個主線程,用來執行任務(函數),但一次只能執行一個任務,這些任務形成一個任務隊列排隊等候執行。
瀏覽器是多執行緒的
前端某些任務是非常耗時的,例如網路請求,計時器和事件監聽,如果讓他們和別的任務一樣,都老實的排隊等待執行的話,執行效率會非常的低,甚至導致頁面的假死。所以,瀏覽器是多執行緒的,例如Webkit或Gecko引擎,都可能有以下執行緒:
#javascript引擎執行緒
##http請求執行緒介面渲染執行緒瀏覽器事件觸發執行緒JS單執行緒與Ajax非同步既然說JS是單執行緒運行的,那為什麼XMLHttpRequest在連線後是異步的?這是由瀏覽器新開一個線程請求。當請求的狀態變更時,如果先前已設定回調,這非同步執行緒就產生狀態變更事件放到 JavaScript引擎的事件處理佇列中等待處理。當瀏覽器空閒的時候出佇列任務被處理,JavaScript引擎總是單執行緒執行回呼函數。 javascript引擎確實是單執行緒處理它的任務佇列,能理解成就是普通函數和回呼函數所構成的佇列。 即Ajax請求確實是非同步的,這是由瀏覽器新開一個執行緒請求,事件回呼的時候是放入Event loop單執行緒事件佇列等候處理。
以上是單線程JS與多線程瀏覽器的使用的詳細內容。更多資訊請關注PHP中文網其他相關文章!