JQuery AJAX получает состояние XMLHttpRequest - PullRequest
1 голос
/ 02 апреля 2009

Вместо типичного «Загрузка ...» или анимированного GIF, я хочу показать лучшее описание того, что происходит. (Вроде как, что делают некоторые заставки для приложений). Однако, взглянув на документацию Jquery, кажется, не существует способа получить изменение в состоянии XMLHttpRequest.

Я бы хотел сделать что-то вроде этого

если регистр = 1, отобразить «Запуск»

если регистр = 2, отобразить «Получение ближе»

если case = 3, отобразить «Я почти у цели»

если регистр = 4 отображаемый контент

Я что-то упускаю или мне следует отказаться от jjery-методов ajax и написать свои собственные?

1 Ответ

0 голосов
/ 02 апреля 2009

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

Однако вам придется каким-то образом сохранять текущее рабочее состояние на сервере. Я не знаю, с какой технологией вы работаете, поэтому я могу только сказать вам использовать что-то, что обеспечивает выбранный вами фреймворк, но убедитесь, что состояние процесса установлено в переменной, которую можно сохранить (HTTP не имеет состояния) в примере в переменной сеанса. Синхронизировать это значение между запущенным процессом и методом опроса может быть сложно.

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

Если вам не нужен еще один скучный индикатор «Загрузка ...» в веб-приложении, вы можете случайно отобразить некоторые забавные цитаты или другие тексты из массива.

Лучшее решение - минимизируйте время, необходимое для обработки запроса. :)

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