Я реализовал несколько плохих решений для загрузки загрузчика AJAX перед динамическим обновлением контента DIV, но ни один из них не кажется «универсальным», и каждый раз, когда я это делаю, я его перерабатываю. Если у меня есть DIV с содержимым, которое обновляется в зависимости от того, что пользователь нажимает на странице, и я хочу отобразить загрузчика над этим содержимым DIV, какой лучший подход? Я видел, что некоторые разработчики всегда загружают загрузчик на странице, и они просто отображают блок или нет, и я видел, как другие добавили его в DIV. Как насчет того, когда у вас также есть несколько областей, которые могут обновляться? Я думаю что-то повторяемое, что я могу вызвать функцию, возможно, передав несколько параметров.Лучший подход для использования погрузчиков AJAX?
ответ
Некоторые библиотеки JavaScript позволяют прослушивать запросы на открытие и закрытие. Проверьте запрос прототипа Ответчик http://www.prototypejs.org/api/ajax/responders.
Вы бы сделать что-то вроде этого:
Ajax.Responders.register({
onCreate: function() {
$('loader').show();
Ajax.activeRequestCount++;
},
onComplete: function() {
Ajax.activeRequestCount--;
if (Ajax.activeRequestCount < 1) $('loader').hide();
}
});
Что касается визуального представления загрузки, вы можете определить различные части вашей страницы, которые могут потребоваться отдельные графики загрузки и подклассов объекта запроса, каждый раз с указанием типа запроса.
E.g.
Сохраняется ли это поле? new FieldUpdateRequest(field)
Загружается ли эта страница? new Request();
Является ли контейнер обновляемым? new PartialRequest(div);
Затем захватите каждый тип подклассов и покажите или скройте графику другого погрузчика.
К сожалению, нет быстрого решения, hal. Вы можете создать общий сценарий для добавления графиков загрузчика в контейнеры, что должно сэкономить вам некоторое повторение. Если вы это сделаете, сообщите об этом здесь :)?
Вы можете использовать JQuery progress bar или что-то подобное в другой библиотеке.
Это был отличный ответ. Спасибо, что предоставили все детали. – 2008-10-11 18:29:51