Подождите, пожалуйста, сообщение с помощью jQuery или AJAX?

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

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


1. Инструменты AJAX

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

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

2. jQuery

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

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


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


person Devin Burke    schedule 26.05.2011    source источник
comment
Если вы планируете использовать ASP.NET WebForms для своего проекта и у вас есть ограничения по времени, используйте UpdatePanel. В противном случае jQuery - лучший вариант.   -  person Thomas Li    schedule 26.05.2011


Ответы (3)


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

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

person Jamie Treworgy    schedule 26.05.2011

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

HTH.

person Brian Mains    schedule 26.05.2011

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

person Jage    schedule 26.05.2011
comment
Он говорит, что проблема заключается в задержке после событий POST, я не думаю, что это решит проблему. - person Jamie Treworgy; 26.05.2011