Задать вопрос
@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, '');
            }
        });
  • Вопрос задан
  • 140 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 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
Учитесь писать асинхронный код. Синхронная отправка запроса блокирует страницу до получения ответа и имеет ряд ограничений.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы