Сообщение «Пожалуйста, подождите» с использованием jQuery или AJAX? - PullRequest
5 голосов
/ 26 мая 2011

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

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


1. AJAX Tools

Используя AJAX UpdatePanel и загрузчик прогресса, я могу легко показать сообщение на каждой обратной передаче с очень небольшим дополнительным кодом, если он вообще есть.

Моя проблема с методом AJAX заключается в том, что, поскольку это очень общий шаблон, мне нужно будет обернуть всю страницу в панели обновлений. Исходя из опыта работы с ASP.NET 3.5 AjaxToolKit, панель обновления влияет на постбэки и код JavaScript в стиле фанк. Кроме того, я думаю, что UpdatePanels тяжелые и увеличивают время, необходимое для загрузки сеанса или приложения.

2. JQuery

Используя jQuery, я могу привязать метод, который показывает сообщение к каждому $(':submit').click() {} событию. Страница автоматически скрывает сообщение, перезагружая его в конце сообщения.

У меня нет серьезных проблем с методом jQuery. Для правильной работы с полевыми валидаторами потребуется дополнительное кодирование. Неиспользование UpdatePanel также означает, что вся страница перезагружается при каждой обратной передаче, что может быть не лучшим способом. Это также должно быть отложено за несколько секунд до появления сообщения «Пожалуйста, подождите», чтобы оно не отображалось для очень маленьких событий, которые не нуждаются в таком сообщении.


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

Ответы [ 3 ]

5 голосов
/ 26 мая 2011

Определенно № 2.Добавление UpdatePanel - это целая банка червей, и, если вы не используете их уже на данной странице, это приводит к большим накладным расходам.

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

3 голосов
/ 26 мая 2011

В UpdatePanel есть элемент управления UpdatePanelProgress для отображения пользователю сообщения о состоянии процесса. С помощью JQuery вы можете отобразить элемент с сообщением «пожалуйста, подождите» при нажатии кнопки и прикрепить универсальный обработчик к ajaxComplete , этот обратный вызов срабатывает после завершения запроса AJAX, а затем вы можете скрыть его.

НТН.

1 голос
/ 26 мая 2011

Если вы используете jquery, просто используйте ajaxStart / ajaxStop .

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