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

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

Войти через центр авторизации
Похожие вопросы
от 110 000 до 150 000 руб.
Александрия Москва
от 200 000 до 250 000 руб.
Алгоритмика Москва
от 120 000 до 200 000 руб.
23 авг. 2019, в 18:29
140000 руб./за проект
23 авг. 2019, в 18:26
3000 руб./за проект
23 авг. 2019, в 18:17
9999 руб./за проект