Splash Screen en ASP.Net

Algo que puede resultar muy útil para realizar la presentación de una página ó cuando se carga una página muy pesada es utilizar una Splash Screen ó página de presentación. En mi caso sólo las uso para poner un mensaje del tipo “Cargando, espere por favor…” cuando tengo que cargar una página muy pesada.

Esto era algo fácil de realizar en ASP, pero la cosa cambia en ASP.Net, ya que siempre carga primero el código servidor cuando se está cargando la página y por lo tanto no podemos colocar una capa con un mensaje en la parte cliente. Para poder realizar esto debemos usar Response.Flush(), cuya función es enviar al cliente el código servidor que hay almacenado en el Buffer. La cuestión es que se puede usar para cargar datos del cliente de la siguiente manera:

Se coloca al inicio del una capita con un mensaje de espera:

<body>
<div id=splashScreen style=…>
Cargando datos, espere por favor . . .
</div>
<% Response.Flush() %>

De esta manera antes que empiece la carga de la página se mostrará al usuario el contenido de la capa.

A continuación debemos ocultar la capa cuando termine la carga:

<script language=javascript>
document.getElementById(”splashScreen”).style.display=”none”;
</script>
</body>

Con este se mostrará el mensaje “Cargando datos, espere por favor” mientras se carga toda la página, incluyendo el procesamiento que se realice en el servidor.

Esto se puede embellecer con un gif animado o cualquier otra cosa que se nos ocurra.

S3rGy0.

15 comentarios en “Splash Screen en ASP.Net”

  1. oscar PR: 0dijo:

    Hermano. pues bien, funciona este script, pero la leyenda no desaparece despues de traer los datos.???que es lo que tengo que hacer, plis??

  2. S3rGy0 PR: 2dijo:

    Pues si te fijas, al final del post te digo que tienes que colocar al final del <body> esto:

    <script language=javascript>
    document.getElementById(”splashScreen”).style.display=”none”;
    </script>
    </body>

    Si te fijas lo que haces es, justamente antes de cerrar el cuerpo de la página, ocultar la capa donde se encuentra el mensajito.

    Se coloca al final para que desaparezca cuando haya terminado de cargar la página.

    Saludos.

  3. oscar PR: 0dijo:

    Gracias amigo, ahora si funciona.

  4. fordfy PR: 0dijo:

    hola, a mí no me funciona….
    He añadido todo lo que indicas y sólo veo la “capita” al finalizar el código del page_load de codebehind !!

    ¿¿??

    alguna pista!!

    ¿Puedes avisarme por email si me respondes?
    Gracias

  5. S3rGy0 PR: 2dijo:

    Pues no sé que te puede pasar, lo único que te puedo decir es que la primera parte de código la añado justo después del <body> y antes del <form>. La segunda parte de código que indico la añado justo después de la etiqueta </body>.

    Si quieres envíame el código HTML a mi correo e intentaré ayudarte.

    Salu2.

  6. Manu PR: 0dijo:

    Hola Buenas, a mi no me funciona, mi codigo es el siguiente:

    Cargando datos, espere por favor . . .

    < % Response.Flush() %>

    /tr>

    =”JavaScript”>
    document.getElementById(”splashScreen”).style.display=”none”;

  7. Manu PR: 0dijo:

    Cargando datos, espere por favor . . .

    < % Response.Flush() %>

    >

    =”JavaScript”>
    document.getElementById(”splashScreen”).style.display=”none”;

  8. jgarcía PR: 6dijo:

    Cuando quieras mostrar código HTML, no olvides sustituir los < y > por &lt ; y &gt ;, respectivamente.

  9. S3rGy0 PR: 2dijo:

    No me ha llegado bien tu codigo pero de todas maneras sólo tienes que colocar la capa donde dice “Cargando datos, espere por favor…” justo detrás del body, a continuación un <% Response.Flush() %>, seguidamente pones el código que se ha de cargar tras el splash screen (en tu caso creo que es una tabla) y justo antes de cerrar el body ocultas la capa, para que una vez que este cargada se oculte la splash screen.

    Si te fijas no se pone nada de la splash screen dentro del formulario, sino fuera.

    Si no te funciona repasa el código y hazlo como te digo ya que no tiene mucha más historia.

    Saludos.

  10. Ary PR: 0dijo:

    Muchas gracias, funciona muy bien.

  11. kikaysenso PR: 0dijo:

    hola, hize la prueba con varios de estos codigos y si me funcionan pero necesito ayuda para hacerlo con una imagen, si alguien sabe como hacerlo porfavor posteelo. gracias

  12. Sergei PR: 0dijo:

    Lo unico que tienes que hacer es conseguirte una gif animado, y lo colocas entre las etiquetas div, de la siguiente forma:

    Cargando datos, espere por favor . . .

    Espero te sirva, y gracias a S3rGy0, muy util el codigo

  13. Maris PR: 0dijo:

    Buenísimo!!!. Podrias decirme si se puede cargar un html en un div?? Gracias x adelantado.

  14. Bama PR: 0dijo:

    Saludos, estoy intentando con el codigo para aparecer la capa con el mensaje cargando y no me funciona, aqui pongo todo mi codigo a ver si me ayudan, de antemano gracias!.

    < %@ Page language="c#" Codebehind="Commerce_Associate_Panel.aspx.cs" AutoEventWireup="false" Inherits="ClubManager.Commerce_Associate_Panel" %>
    < !DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >





    onload=”Parse_Comments()”>

    < %Response.Flush();%>

    type="hidden" size="1" name="Hidden_CommerceCount" runat="server"/>
    type="hidden" size="1" name="Hidden_Commerce" runat="server"/>
    type="hidden" size="1" name="Hidden1" runat="server"/>
    type="hidden" size="1" name="Hidden2" runat="server"/>
    width="568" border="1">

    type="hidden" size="1" name="Hidden_CommerceSelected" runat="server"/>

  15. Sergio PR: 1dijo:

    como puedo hacer esto pero en Dinamo?????

Deja tu comentario

XHTML: Puedes usar las etiquetas: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>