Событие изменения текста в div
имеем такой html:
<div class="foo">foo text</div> В этот блок мы вставляем сообщение "Запрос к серверу...", затем генерируем сам запрос:
// 1) команда изменения содержимого div
$(".foo").text("Запрос к серверу...");
// 2) ресует <div class="foo">Запрос к серверу...</div>
// 3) окно подвисает на время запроса к серверу
$.ajax({... async: false, ... });
На деле работает в последовательности 1,3,2, то есть текст меняется после запроса. Можно исправить это так:
$(".foo").text("Запрос к серверу...");
setTimeout(function(){
$.ajax({... async: false, ... });
}, 20);
.. но хотелось бы как-то так:
$(".foo").text("Запрос к серверу...").done(function(){
$.ajax({... async: false, ... });
})
Есть ли такое решение? |
Dinar,
Поставьте async: true, и будет 1-2-3 А потом в sucsess напишите в div о выполнении запроса |
Да, верно. Но хотелось бы решения с async:false
|
Главный вопрос в том, чтобы найти способ запуска следующей команды только после того, как в окне были завершены эффекты действия первой команды.(без timeout)
|
Dinar,
переписать на ES6 и юзать его фичи - промисы. |
| Часовой пояс GMT +3, время: 08:07. |