В чем разница между асинхронным и синхронным и как разница влияет на запрос?Почему асинхронные XMLHttpRequests предпочтительнее, чем синхронные запросы?
ответ
Из статьи Mozilla на Synchronous and asynchronous requests:
XMLHttpRequest поддерживает синхронные и асинхронные коммуникации. В общем, однако, асинхронные запросы должны быть предпочтительнее синхронных запросов по соображениям производительности.
Короче говоря, синхронные запросы блокируют выполнение кода и могут утечка памяти и событий. Это может вызвать серьезные проблемы. Единственной жизнеспособной причиной использования синхронных запросов является более легкое облегчение загрузки в Web Workers.
Асинхронные запросы являются основной причиной, по которой XMLHttpRequest существует. XMLHttpRequest подкрепляет AJAX, идея которого заключается в том, чтобы ваш код JavaScript работал и ваш пользователь делал все с вашей страницы, пока ваш JavaScript общается с сервером в фоновом режиме. Например, Gmail загружает ваши электронные письма.
Синхронные запросы блокируют запуск вашего скрипта, пока передача завершена. Проще говоря, нет причин для этого, когда доступны асинхронные запросы. Было бы очень неприятно, если бы ваша Gmail все время замерзала, не так ли? Вы редко, если хотите, хотите использовать синхронный запрос.
There are circumstances you must use a synchronous request, но за пределами этих обстоятельств вы, вероятно, не будете иметь абсолютно никаких оснований делать синхронный запрос и все причины использовать асинхронный.
Асинхронный запрос позволяет вашему скрипту продолжать работать и делать что-то еще, пока он ожидает ответа с сервера.
Синхронный запрос блокирует выполнение скрипта до получения ответа. Это означает, что ваше приложение будет неактуальным и не сможет ничего сделать.
В каких (видимо, редких) обстоятельствах синхронный запрос будет более полезным для разработчика? –
Когда все должно происходить последовательно, или один запрос зависит от результата другого запроса, чтобы он мог работать. –
@Mark: Даже тогда есть другие способы легко направить асинхронные запросы (ключевые слова: обещания, очереди) –
- 1. jQuery синхронные асинхронные запросы в порядке
- 2. асинхронные запросы aiohttp не удались, но синхронные запросы удались
- 3. Синхронные и асинхронные языки
- 4. Как смешивать синхронные и асинхронные запросы в Spring MVC?
- 5. PHP/MySQL Синхронные запросы innoDB работают как асинхронные
- 6. Параллельные асинхронные XMLHttpRequests возвращаются только один раз
- 7. Синхронные и асинхронные обратные вызовы
- 8. iOS Синхронные вызовы асинхронные методы
- 9. Сделать синхронные запросы orchestrate.io
- 10. Mix синхронные и асинхронные методы HttpWebRequest
- 11. ios и синхронные запросы
- 12. Сделать синхронные запросы AJAX
- 13. Асинхронные запросы
- 14. Понимание asyncio: асинхронные и синхронные обратные вызовы
- 15. XMLHttpRequests
- 16. Поддерживать как синхронные, так и асинхронные реализации
- 17. создавать асинхронные и синхронные методы для репозитория
- 18. Почему RestSharp не поддерживает синхронные запросы на Windows Phone?
- 19. Как сделать синхронные запросы URL из ActionScript?
- 20. Delphi tcpServer Асинхронные запросы
- 21. синхронные запросы httpservice в Flex
- 22. Синхронные запросы GET в angular2
- 23. Синхронные запросы HTTP в C++
- 24. Синхронные запросы HTTP в Swift
- 25. Node.js Синхронные запросы с MySQL
- 26. Is/**/комментарий предпочтительнее, чем //?
- 27. Асинхронные кросс-доменные запросы GET
- 28. Асинхронные запросы PHP
- 29. MS Access Асинхронные запросы
- 30. асинхронные запросы в AppEngine
Это не влияет на * запрос *, так как это влияет на браузер и, следовательно, на опыт пользователя. Синхронный запрос заставляет браузер более или менее «замораживать», ожидая ответа. – Pointy
Не могли бы вы объяснить, почему вы думаете, что они «предпочитают»? Как и каждый инструмент, есть хорошие времена и плохие времена для использования асинхронных или синхронных запросов. –
@PlatinumAzure: Нет, он не может - иначе он не спрашивал :-) – Bergi