異步和同步之間有什麼區別,差異如何影響請求?爲什麼異步XMLHttpRequests優先於同步請求?
回答
從Mozilla的文章上Synchronous and asynchronous requests:
XMLHttpRequest的支持同步和異步通信。但是,通常,出於性能原因,異步請求應該優先於同步請求。
簡而言之,同步請求會阻止代碼的執行,並可能泄漏內存和事件。這可能會導致嚴重問題。使用同步請求的唯一可行原因是更容易方便Web Worker中的下載。
異步請求是XMLHttpRequest存在的主要原因。 XMLHttpRequest支持AJAX,其思想是讓您的JavaScript代碼運行,並且您的用戶在您的頁面上執行任何操作,而JavaScript則在後臺與服務器通信。例如,Gmail會以這種方式加載您的電子郵件。
同步請求在傳輸完成時阻止腳本運行。簡而言之,當異步請求可用時,沒有理由這樣做。如果您的Gmail始終處於凍結狀態,這會非常令人討厭,您不覺得嗎?你很少,如果有的話,想要使用同步請求。
There are circumstances you must use a synchronous request,但在這些情況之外,您可能完全沒有理由發出同步請求,以及使用異步請求的每個理由。
異步請求允許您的腳本在等待服務器回覆時繼續運行並執行其他操作。
同步請求會阻止腳本的執行,直到收到答覆爲止。這意味着您的應用程序將無響應,並且無法執行其他任何操作。
什麼(顯然很少見)情況下,同步請求會對開發人員更有用? – 2013-05-01 23:47:35
當事情需要按順序發生時,或者一個請求取決於另一個請求的運行結果。 – 2013-05-01 23:48:59
@Mark:即便如此,其他方式可以輕鬆鏈接異步請求(關鍵字:承諾,隊列) – 2013-05-01 23:51:53
- 1. 優先化okhttp異步請求
- 2. OpenRasta:優先請求或:進行異步請求
- 3. 將一系列同步AJAX請求轉換爲異步請求
- 4. 同步請求和異步請求之間有什麼區別? (async = true/false)
- 5. AJAX請求同步與異步
- 6. 多個異步請求同步
- 7. 處理客戶請求時,爲什麼異步模式比同步模式好?
- 8. 異步API請求的同步API請求Swift 2.2
- 9. 異步請求vaadin
- 10. nsurlconnection異步請求
- 11. Django異步請求
- 12. 的Javascript同步和異步流程優先
- 13. IOS Swift 3爲同步請求和異步請求創建URLSession擴展
- 14. 如何將同步發佈請求轉換爲異步發佈請求?
- 15. GuzzleHttp異步請求異常
- 16. iPhone同步請求
- 17. 請求AVAssetForVideo同步
- 18. 同步Ajax請求
- 19. 同步JSONP請求
- 20. 優化調用同一服務的異步多請求操作
- 21. 目標C - 依賴於異步請求
- 22. 請求完成後觸發Redux異步操作。爲什麼?
- 23. 在承諾內部爲每個異步請求做些什麼?
- 24. 異步優於BeginXXX/EndXXX有什麼優勢?
- 25. 使用OKHttp,AsyncTask和OKhttp異步請求中的同步請求有什麼區別?
- 26. 異步HTTP請求,排隊請求
- 27. 多個異步URL請求
- 28. 角度異步http請求
- 29. c#異步http請求
- 30. Objective-C異步http請求
它不會影響* request *,因爲它影響瀏覽器,因此影響用戶的體驗。同步請求會導致瀏覽器在等待響應時或多或少地「凍結」。 – Pointy 2013-05-01 23:38:40
你能解釋爲什麼你認爲他們是「首選」嗎?就像每個工具一樣,使用異步或同步請求有很多好時光和不好的時候。 – 2013-05-01 23:39:37
@PlatinumAzure:不,他不會 - 否則他不會問:-) – Bergi 2013-05-01 23:40:41