Web Мастерская»Блог

Сообщество Web Мастеров. Тут собрано всё, чтобы написать свой первый сайт, запустить его в Интернет и поддерживать его в течении всей его работы.

Synchronous XMLHttpRequest on the main thread is deprecated

Если вы столкнулись с предупреждением «Synchronous XMLHttpRequest on the main thread is deprecated», это значит, что ваш код совершает синхронные запросы на главную нить браузера. Подобная практика признана устаревшей и не рекомендуется из-за серьёзного негативного влияния на пользовательский опыт.

В этой статье мы расскажем, почему появились такие запросы, каковы последствия их использования и как можно исправить ситуацию.

Что такое синхронные запросы?


Синхронный запрос — это когда выполнение программы блокируется до завершения сети. Другими словами, пока запрос не получит ответ от сервера, браузер не сможет продолжать обработку скриптов и реагировать на действия пользователя.

Например, возьмем такой JavaScript-код:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/api/data', false); // Параметр false делает запрос синхронным
xhr.send();
console.log(xhr.responseText);

Параметр false в третьей позиции заставляет запрос ждать завершения передачи данных от сервера,...