Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/11/2012, 07:01
Avatar de stramin
stramin
 
Fecha de Ingreso: marzo-2008
Ubicación: Cubil felino
Mensajes: 1.652
Antigüedad: 17 años
Puntos: 336
Respuesta: Carga en Espera...

Yo en esos casos uso una función AJAX muy corta, lo que hace es cargar la página de destino en un contenedor oculto, solo una vez que la pagina se ha cargado completamente (estado http de nivel 4 (cargado)) se muestra.

El efecto es bastante agradable a la vista, no se nota la carga ni ese flash blanco que hay entre la carga de una página y otra :)

Código HTML:
Ver original
  1. <script language="javascript">
  2. function enlace(http) {
  3.     var LINK_xmlhttp = false;
  4.     try { LINK_xmlhttp = new ActiveXObject("Msxml2.XMLHTTP"); }
  5.     catch (e) { try { LINK_xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); }
  6.     catch (e) { try { LINK_xmlhttp = new XMLHttpRequest(); }
  7.     catch (e) { LINK_xmlhttp = false; }}}
  8.     if (!LINK_xmlhttp) return null;
  9.    
  10.     LINK_xmlhttp.open("GET", http, true);
  11.     LINK_xmlhttp.onreadystatechange = function() {
  12.         if (LINK_xmlhttp.readyState == 4) document.body.innerHTML=LINK_xmlhttp.responseText + ' ';
  13.     }
  14.     LINK_xmlhttp.send(null);
  15.     return false;
  16. }
  17. <a href="javascript:;" onclick="enlace('index.php');">un enlace</a>
  18. </body>
  19. </html>

la función enlace() puedes copiarla en un archivo .js independiente y llamarla desde todas tus páginas.

nota que el enlace tiene el evento href como una llamada a javascript vacía, esto hace que el link siga pareciendo un link normal, sin embargo al hacerle clic se invocará el evento "onclick" que es el que llama a la función enlace.

Puedes hacer envío de variables GET sin problema con este metodo, por ejemplo: index.htm?var1=val1
__________________
El objetivo de este foro es orientar al usuario como un favor y no como una obligación.

Yo soy de los que dan puntos por aporte :D