Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.03.2016, 18:44
Новичок на форуме
Отправить личное сообщение для Dinar Посмотреть профиль Найти все сообщения от Dinar
 
Регистрация: 28.03.2016
Сообщений: 4

Событие изменения текста в 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, ... });
})

Есть ли такое решение?
Ответить с цитированием
  #2 (permalink)  
Старый 28.03.2016, 18:51
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

Dinar,
Поставьте async: true, и будет 1-2-3
А потом в sucsess напишите в div о выполнении запроса
Ответить с цитированием
  #3 (permalink)  
Старый 28.03.2016, 18:57
Новичок на форуме
Отправить личное сообщение для Dinar Посмотреть профиль Найти все сообщения от Dinar
 
Регистрация: 28.03.2016
Сообщений: 4

Да, верно. Но хотелось бы решения с async:false
Ответить с цитированием
  #4 (permalink)  
Старый 28.03.2016, 19:01
Новичок на форуме
Отправить личное сообщение для Dinar Посмотреть профиль Найти все сообщения от Dinar
 
Регистрация: 28.03.2016
Сообщений: 4

Главный вопрос в том, чтобы найти способ запуска следующей команды только после того, как в окне были завершены эффекты действия первой команды.(без timeout)
Ответить с цитированием
  #5 (permalink)  
Старый 28.03.2016, 19:05
Аватар для destus
Профессор
Отправить личное сообщение для destus Посмотреть профиль Найти все сообщения от destus
 
Регистрация: 18.05.2011
Сообщений: 1,207

Dinar,
переписать на ES6 и юзать его фичи - промисы.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
событие schange для select, когда нет изменения FeelUs Events/DOM/Window 3 08.02.2016 06:09
Поймать событие изменения data-* dmsuslov Events/DOM/Window 4 21.10.2015 21:07
Событие при создании div tr0y Events/DOM/Window 13 21.10.2015 08:28
Если размера div не хватает для текста Гробовщик (X)HTML/CSS 7 19.07.2013 00:44