2011-05-26 17 views
5

Estoy creando una plantilla web empresarial que se utilizará para el desarrollo de todas nuestras aplicaciones web. Muchas de nuestras aplicaciones existentes demoran un tiempo en cargarse debido a la cantidad de datos y la distancia geográfica de la fuente de datos, por lo que los usuarios hacen clic frecuentemente en los mismos botones y enlaces dos veces.mensaje "Espere por favor" usando jQuery o AJAX?

Planeo agregar un mensaje de Espere para que aparezca cuando la página esté publicando. Me di cuenta que hay dos maneras obvias de hacer esto:


1. Herramientas AJAX

Utilizando el AJAX UpdatePanel y el progreso del cargador, que puede mostrar fácilmente un mensaje en cada devolución de datos con muy poco, si es cualquier, código adicional.

Mi preocupación con el método AJAX es que, debido a que esta es una plantilla muy genérica, tendría que envolver toda la página en un panel de actualización. A partir de la experiencia con ASP.NET 3.5 AjaxToolKit, el panel de actualización afecta la devolución de datos y el código JavaScript de manera funky. Además, creo que los UpdatePanels son pesados ​​y aumentan la cantidad de tiempo necesaria para cargar la sesión o la aplicación.

2. jQuery

Usando jQuery, puedo enlazar un método que muestra el mensaje a cada $(':submit').click() {} evento. La página ocultaría automáticamente el mensaje volviendo a cargar al final de la publicación.

No tengo mayores preocupaciones con el método jQuery. Se requeriría una codificación adicional para funcionar correctamente con los validadores de campo. No usar UpdatePanel también significa que la página completa se vuelve a cargar en cada devolución, lo que podría no ser el mejor método. También debería retrasarse unos segundos antes de que aparezca el mensaje "Espere por favor" para que no aparezca en eventos muy pequeños que no necesitan dicho mensaje.


¿Cuál es la mejor manera de mostrar un Espere por favor o Cargando mensaje? Me preocupan la velocidad y la fiabilidad, pero si hay otras medidas de éxito que considere importantes, no dude en decirlo.

+1

Si está planeando usar ASP.NET WebForms para su proyecto y tiene restricciones de tiempo, luego use UpdatePanel. De lo contrario, jQuery es la mejor opción. –

Respuesta

5

Definitivamente # 2. Agregar un UpdatePanel es una lata de gusanos, y si no los está usando ya en una página determinada, agrega una gran cantidad de sobrecarga.

El código involucrado en el uso de jQuery para hacer esto es trivial. Hay un pequeño plugin llamado blockui que se puede usar para generar un efecto y deshabilitar todos los controles en un área. No es demasiado difícil hacer esto sin el complemento tampoco, pero ¿por qué reinventar?

3

Con UpdatePanel, hay un control UpdatePanelProgress para mostrar al usuario un mensaje de estado de progreso. Con JQuery, puede mostrar un elemento con el mensaje Espere por favor al hacer clic en el botón, y adjuntar un controlador genérico al ajaxComplete, esta devolución de llamada se activa cuando la solicitud AJAX finaliza y luego puede ocultarla.

HTH.

1

Si está utilizando jquery, simplemente use ajaxStart/ajaxStop.

+0

Él dice que el problema es la demora después de un evento POST, no creo que esto solucione el problema. –

Cuestiones relacionadas