AJAX читает данные в прогрессивном режиме, а не только когда это завершено - PullRequest
3 голосов
/ 01 ноября 2010

Мне нравится создавать индикатор выполнения для моих вызовов ajax.Для этого я могу заставить свой серверный скрипт возвращать состояние его выполнения.Поэтому мне нужно, чтобы javascript прочитал этот уровень прогресса и показал его.

Возможно ли, или я не на том пути?

Ответы [ 2 ]

1 голос
/ 01 ноября 2010

Вы можете попробовать что-то вроде этого (некоторый псевдокод, предполагая jQuery, поскольку вы пометили вопрос как таковой):

var poll;
$.ajax({
  url: 'your_ajax_script',
  beforeSend: function(){ // set up out-of-band status polling
    poll = setInterval( function(){
      $.get('your_script_that_returns_status',
        function(data){ 
          update_progressbar(data);
        });
      }, 1000 ); // update every second?
  },
  success: function(data) {
    clearInterval( poll ); // stop polling
    finalize_or_hide_progressbar(); // clean up
    do_something_with( data ); // your "done" logic
  }
});
0 голосов
/ 01 ноября 2010

Либо опрашивайте с интервалами, возвращая полезную нагрузку при последнем успешном вызове, либо выполняйте два вызова AJAX - первый извлекает фактические данные, а второй опрашивает процент обновления.

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