@Galdar
Web, JS, PHP, NGINX, Linux

Как уйти от использования async в js?

Делаю ajax запрос к файлу php и нужно остановить весь скрипт пока не будет ответ, просто потому что без значений которые идут от ajax зависит ответ кода. Есть ли способ заменить asunc на что-то другое или стоит вообще уйти от ajax запроса в таком плане?
$.ajax({
            type: 'POST',
            url: 'session.php',
            async: false,
            success:function(response){
                data = JSON.parse(response);
                setCookie('1', value, '');
                setCookie('2', value, '');
                setCookie('3', value, '');
                setCookie('4', value, '');
            }
        });
  • Вопрос задан
  • 135 просмотров
Пригласить эксперта
Ответы на вопрос 3
dollar
@dollar
var xhr = new XMLHttpRequest();
xhr.open("GET", "ajax.txt", false);
xhr.send(); //Скрипт остановится до получения ответа
document.getElementById("demo").innerHTML = xhr.responseText;
Ответ написан
SagePtr
@SagePtr
Еда - это святое
От асинхронности в ajax уходить не стоит, потому как при синхронном ajax вся вкладка браузера будет намертво виснуть, пока запрос не отработает и на него не уйдёт ответ. Что очень сильно испортит впечатление о сайте и практически любой посетитель закроет зависшую вкладку, или браузер предложит закрыть её.
Вместо этого лучше нормально научиться пользоваться промисами (можно также через async/await) или на худой конец колбэками.
А ещё современные браузеры умеют fetch, если не нужна поддержка IE и прочего барахла - то можно использовать его.
Ответ написан
rockon404
@rockon404
Frontend Developer
Учитесь писать асинхронный код. Синхронная отправка запроса блокирует страницу до получения ответа и имеет ряд ограничений.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
Admitad Projects Москва
от 170 000 до 240 000 ₽
Fundraise Up Санкт-Петербург
от 2 500 до 3 500 $
от 5 000 до 6 500 $
30 мая 2020, в 00:58
5 руб./за проект
30 мая 2020, в 00:18
500 руб./за проект
29 мая 2020, в 23:52
10000 руб./за проект