2008-10-11 7 views
2

Я реализовал несколько плохих решений для загрузки загрузчика AJAX перед динамическим обновлением контента DIV, но ни один из них не кажется «универсальным», и каждый раз, когда я это делаю, я его перерабатываю. Если у меня есть DIV с содержимым, которое обновляется в зависимости от того, что пользователь нажимает на странице, и я хочу отобразить загрузчика над этим содержимым DIV, какой лучший подход? Я видел, что некоторые разработчики всегда загружают загрузчик на странице, и они просто отображают блок или нет, и я видел, как другие добавили его в DIV. Как насчет того, когда у вас также есть несколько областей, которые могут обновляться? Я думаю что-то повторяемое, что я могу вызвать функцию, возможно, передав несколько параметров.Лучший подход для использования погрузчиков AJAX?

ответ

2

Некоторые библиотеки 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. Вы можете создать общий сценарий для добавления графиков загрузчика в контейнеры, что должно сэкономить вам некоторое повторение. Если вы это сделаете, сообщите об этом здесь :)?

+0

Это был отличный ответ. Спасибо, что предоставили все детали. – 2008-10-11 18:29:51