2012-08-10 33 views
2

我建立一個計算器,讓很多XHR電話,並想知道如果在一個網絡工作者放置這些,同步,仍然會鎖定瀏覽器?這是我的理解,這些是在不同的線程處理,不應該。我之前建立的算法是異步的,它只是非常難以維護的代碼,我只希望這個選項能夠讓代碼更易於維護,我明白爲什麼它不應該在Web工作者之外同步。)Web工作者中的同步XHR請求是否仍然鎖定瀏覽器?

+0

沒有理由異步代碼已難以維持。我傾向於戰勝這個死馬,但是使用jQuery的「承諾」(或其他一些「類似promise的」基礎架構,jQuery肯定不是第一個),處理異步代碼不應該比同步代碼更麻煩。後處理某些IO的結果可以在調用之後的行中寫入,如果需要在調用堆棧中的函數中進行進一步處理,則可以返回原始承諾,創建直接解析/失敗的新承諾或對新承諾的「管道」。 – JayC 2012-08-10 16:21:46

+0

Promise肯定是我會爲該項目進行調查的事情,儘管我希望避免使用jQuery,除非絕對必要。到目前爲止,我對計算器的算法在異步方面過於複雜,我處於絕對回調地獄,所以如果不鎖定瀏覽器,同步運行聽起來不是一個不好的選擇。 – 2012-08-10 17:39:27

+0

@JayC我其實真的很喜歡這整個承諾的事情,你能指出我最喜歡的輕量級庫提供這些嗎? – 2012-08-10 17:48:43

回答

1

如果沒有可用的另一處理器,它不會那麼糟糕,因爲這將是沒有網絡工作者(因爲OS可以輪詢調度兩個線程來運行交錯的處理器,甚至一個)。

而且隨着可用的其它處理器,操作系統將理想安排其在該線程運行,他們都以全速運行。

相關問題