¿Cuál es la mejor manera de sostener una página ASP.NET hasta que finalice la operación de larga duración? [cerrado]

StackOverflow https://stackoverflow.com/questions/901954

Pregunta

Javascript?

Metatag de refresco?

Response.Redirect (a sí mismo)

Server.Transfer (a sí mismo)

Ajax panel de actualización?

¿Fue útil?

Solución

Veamos las opciones:

  

Javascript?

Esto funciona bien, siempre y cuando el usuario no haya desactivado.

  

Metatag de refresco?

Un método desfasada y en el método de Javascript. Sin embargo, se puede utilizar como copia de seguridad si el usuario ha desactivado el Javascript.

  

Response.Redirect (a sí mismo)

Eso no funciona, ya que el navegador no mostraría anyhing útil para el usuario, mientras que la reorientación. Además, el navegador dejará de solicitar después de un cierto número de redirecciones a proteger al usuario de las redirecciones infinitas.

  

Server.Transfer (a sí mismo)

No funciona bien, ya que el código en el servidor haría solo bucle sin enviar nada al navegador. El efecto es el mismo que acaba de tener un bucle en el código.

  

Ajax panel de actualización?

Funciona bien, siempre y cuando el usuario no haya desactivado el Javascript. Es básicamente la misma que la primera opción, sólo el Javascript hace la propia solicitud en lugar de dejar que el navegador haga la solicitud.

Otros consejos

Si usted puede reportar cualquier tipo de progreso para el usuario, que tienden a funcionar con un asxh y una variación de un siempre enmarcar . Añadir un poco de jQuery UI de diálogo y jQuery UI Barra de progreso y usted tiene una forma brillante de sostener la atención de los usuarios mientras que usted hace el trabajo pesado en el servidor.

Me dio un código de ejemplo en 874.204 que muestra la técnica.

Si usted no puede dar curso al usuario, tiendo a seguir utilizando la interfaz de usuario de diálogo y hacer estallar un mensaje "Por favor espere, procesamiento ..." con una tela de dos puntos gif spinny oh compatible.

Consulte este artículo sobre asíncrono Páginas . Así es también un ejemplo de CodeProject que incluye páginas asíncronos y meta-REFRESH.

Puede encontrar una implementación de ejemplo de este tipo de funcionalidad en la Casa de la Cerveza de arranque Kit- http://www.asp.net/Downloads/starter-kits/the-beer-house/ .

Las páginas SendingNewsLetter.aspx y SendNewsLetter.aspx serán de utilidad para usted. Esto podría ser excesiva para sus necesidades, incluso aunque-muestra el progreso de la operación de larga duración.

¿Qué pasa con el AJAX WebModalAnchor para que aparezca una ventana con un botón de cancelación?

Espero que esta ayuda,

Bill

Me gustaría recomendar el uso de Ajax y mostrar una UpdateProgress que el usuario sepa que todavía está batiendo lejos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top