несколько ответов AJAX - PullRequest
       3

несколько ответов AJAX

1 голос
/ 31 июля 2011

Я делаю ajax-запрос к странице, которая выполняет некоторые дорогостоящие операции (переиндексация некоторых таблиц базы данных).Это занимает время, и я хочу отображать сообщения о ходе выполнения до его завершения.

Как я могу это сделать?Это возможно?Поскольку JavaScript ждет завершения загрузки страницы, отображаются все сообщения ...

Ответы [ 4 ]

2 голосов
/ 31 июля 2011

Возврат одного сообщения на запрос.Продолжайте делать AJAX-запросы до тех пор, пока не будет получен конкретный «готовый» ответ.Вот как push или « COMET » работает за кулисами, вы также можете использовать правильную технологию push.

Скрытый / подразумеваемый момент здесь заключается в том, что вы не должны выполнять дорогостоящие операции.на странице скриптов.

0 голосов
/ 31 июля 2011

JQuery UI имеет довольно хороший индикатор с примерами того, как его использовать: http://jqueryui.com/demos/progressbar/

0 голосов
/ 31 июля 2011

Я бы вложил загрузочный div в ваш основной контент div.Установите фоновое изображение для загрузчика AJAX (который вы можете скачать здесь ).Когда вы нажимаете любую кнопку, которую вы указали, загрузочный div будет отображаться, и у вашего основного контента будет дополнительное имя селектора CSS.Вы можете сделать непрозрачность 0,5 или что угодно для .main-content.loading.Вот jQuery:

$(".button").click(function(){
   $(".main-content").addClass(".loading");
   $(".main-content .loader").show();
   $.ajax({
      data: //whatever data,
      type: "POST",
      url: // whatever url,
      success: function(d){
        $(".main-content").removeClass(".loading");
        $(".main-content .loader").hide();
        $(".enter-content").html(d);
      }
   });
});
0 голосов
/ 31 июля 2011

Простым решением было бы продолжать опрос по переменной, которую вы используете в качестве флага в базе данных, например, когда эта дорогостоящая операция завершится, он установит тот флаг, по которому вы опрашиваете. Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...