Tengo una página que realiza una tarea larga (10 a 15 segundos) en el método page_load.ASP.NET - Mensaje en pantalla mientras se carga la página
Tengo el código javascript del lado del cliente que mostrará un gif animado de "carga de página" decente para el usuario.
Puedo invocar el método de JavaScript desde el código subyacente, para mostrar el gif animado de "carga de página", sin embargo, la tarea de larga ejecución cuelga la UI de modo que el gif animado no se muestra hasta que se complete la tarea de ejecución prolongada, que es exactamente lo contrario de lo que deseo.
Para probar esto, en mi método page_load hago una llamada al método de JavaScript para mostrar el gif animado. Entonces, uso Thread.Sleep (10000). Lo que ocurre es que el archivo .gif animado no se muestra hasta después de que se complete Thread.Sleep.
Obviamente estoy haciendo algo incorrecto.
Cualquier consejo sería apreciado.
Gracias.
Chris
A continuación se muestra un ejemplo del código subyacente:
protected void Page_Load(object sender, EventArgs e)
{
ClientScript.RegisterStartupScript
(GetType(), "Javascript", "javascript: ShowWaitIndicator(); ", true);
Response.Flush();
Thread.Sleep(10000);
}
No puede invocar javascript desde código subyacente. Todo lo que puede hacer es agregarlo a la secuencia de respuesta, que es lo que está haciendo ClientScript.RegisterStartupScript. Esto eventualmente será enviado de vuelta al navegador. Son dos contextos completamente diferentes. Codebehind se ejecuta en el servidor, javascript se ejecuta en el navegador. – womp