Foros del Web » Programando para Internet » Javascript »

Preload de pagina completa

Estas en el tema de Preload de pagina completa en el foro de Javascript en Foros del Web. Hola chicos, como están? Largo tiempo sin entrar a ForosdelWeb, ya que me ha ido bien programando y hasta ahora no habia encontrado algun reto ...

  #1 (permalink)  
Antiguo 01/06/2006, 16:01
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 22 años
Puntos: 1
Preload de pagina completa

Hola chicos, como están? Largo tiempo sin entrar a ForosdelWeb, ya que me ha ido bien programando y hasta ahora no habia encontrado algun reto fuerte.

Pero se me ha pedido crear un preloader (no para flash) para unas paginas webs que tienen imagenes un tanto pesadas. Mi pregunta es: como puedo crear un preloader, no para una sola imagen, sino para una pagina completa? Puede hacerse esto? Y en caso de que no se pueda, me enseñarían una opcion buena?

Gracias de antemano por todo. Estoy dispuesto a aprender, asi que sientanse libre de responder todo cuanto gusten. Muchas gracias.

Eduardo
  #2 (permalink)  
Antiguo 02/06/2006, 08:29
Avatar de PatomaS
Colaborador
 
Fecha de Ingreso: marzo-2004
Ubicación: En alguna otra parte
Mensajes: 4.656
Antigüedad: 20 años, 1 mes
Puntos: 63
Hola

Lo primero es que esto no se hace con css, las hojas de estilo son para otras cosas.

Después, aunque podrías hacer ciertas técnicas de precarga de imágenes mediante php y javascript, dependiendo del tamañpo que tengan y la cantidad que sea no se notará mucho la diferencia.

Una forma alternativa, es que uses el meta "rel", el cual es interpretado en algunos navegadores realizando una especie de "precarga" de los contenidos relacionados. Obviamente si pones 20 imágenes de 1 mega cada uno, no se notará en absoluto este trabajo.

Otra manera, es que las cargues con javascript.

Personalmente te diría que la mejor manera de evitarte problemas y de hacer las cosas amigables para el usuario, es que en la web pongas imágenes de tamaño reducido pero con suficiente tamaño como para apreciarlas y que el usuario decida si quiere o no ver la imagen grande. Para poder tomar la decisión, deberías indicarle el peso de la imagen y un tiempo estimado de descarga.

Felicidad
__________________
¡ hey, hou, hou, hey !
  #3 (permalink)  
Antiguo 02/06/2006, 08:36
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola Edan16

Como te comenta PatomaS (Saludos ) tendrías que intentarlo con JavaScript, Css solo controla la presentación:

Mensaje movido desde Css.

Saludos,
  #4 (permalink)  
Antiguo 02/06/2006, 11:11
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Cuando se carga la página se activa el evento load del body (onload), pero las imágenes lo único que se carga en ese evento es su url pero no la imagen en sí.
Si tu problema es que se descuadra (o mejor, se acomoda) la página a medida que se cargan las imágenes, puedes evitar ese efecto poniendo sus dimensiones ya sea con atributos o estilos (width y height)...
En las FAQs hay un ejemplo de precarga mostrando porcentaje de carga, pero si no son para sustituciones, se duplicarían innecesariamente, pero se puede retocar ese script usando solamente las imágenes de la página desde la propia colección de imágenes... y consultando en cada ocasión el total de imágenes cargadas (las que tienen su atributo complete a true)

Si tienes dificultad para hacerlo, avisa y te damos una mano.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #5 (permalink)  
Antiguo 02/06/2006, 12:35
 
Fecha de Ingreso: abril-2002
Mensajes: 83
Antigüedad: 22 años
Puntos: 1
Caricatos, me gustara que me dieras una mano, ya que tu idea me parece bastante interesante, y creo que me puede ayudar a solucionar mis dudas.

Si, agradezco toda la ayuda posible que me puedan brindar. Muchas gracias.

Eduardo
  #6 (permalink)  
Antiguo 02/06/2006, 13:45
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
yo utilizo esto checalo en opera no jala solo en ie y firefox

<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<script type="text/javascript">
function hideLoading()
{
document.getElementById('pageIsLoading').style.dis play = 'none'; // DOM3 (IE5, NS6) only
}
</script>
</head>

<body>
<div id="pageIsLoading" style="border-right: #890000 1px solid; padding-right: 12px; background-position: 6px center; border-top: #890000 1px solid; display: block; padding-left: 44px; font-weight: bold; background-image: url(espere.gif); border-left: #890000 1px solid; width: auto; color: #000000; line-hight: 46px; border-bottom: #890000 1px solid; background-repeat: no-repeat; position: absolute; height: 46px; background-color: #e5e5e5">
<script type="text/javascript">
if (typeof window_width == 'undefined' || typeof window_height == 'undefined') {
var window_width;
var window_height;
if( typeof( window.innerWidth ) == 'number' ) {
window_width = window.innerWidth;
window_height = window.innerHeight;
} else if( document.documentElement &&
( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
window_width = document.documentElement.clientWidth;
window_height = document.documentElement.clientHeight;
} else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
window_width = document.body.clientWidth;
window_height = document.body.clientHeight;
}
}
var left = Math.round((window_width - 300) / 2);
var top = Math.round(((window_height - 46) / 3) + 46);
document.getElementById('pageIsLoading').style.lef t = left+'px';
document.getElementById('pageIsLoading').style.top = top+'px';
</script>
Cargando... Espere, por favor...
</div>
<div id="overDiv" style="position:absolute; visibility:hidden; z-index:1000;"></div>
.
.
.
.
.
.
contenido de la pagina
.
.
.
.
.
.
<script type="text/javascript">
if (window.addEventListener) {
window.addEventListener('load', hideLoading, false);
} else if (window.attachEvent) {
var r = window.attachEvent("onload", hideLoading);
} else {
hideLoading();
}
</script>
</body>
</html>


saludos
__________________
gerardo
  #7 (permalink)  
Antiguo 02/06/2006, 17:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

El ejemplo de lo que te puse antes, puedes verlo en este otro mensaje: http://www.forosdelweb.com/showthrea...light=precarga

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 30/04/2007, 03:57
Avatar de Sette  
Fecha de Ingreso: febrero-2002
Mensajes: 1.747
Antigüedad: 22 años, 2 meses
Puntos: 3
Re: Preload de pagina completa

pero se puede hacer q salga un mensaje que ponga cargando o algo así?
__________________
diseño y programación
http://www.manucastro.es
[email protected]
  #9 (permalink)  
Antiguo 30/04/2007, 05:22
Avatar de Raulmmmm  
Fecha de Ingreso: marzo-2007
Ubicación: En otro lugar que tú
Mensajes: 1.549
Antigüedad: 17 años, 1 mes
Puntos: 36
Re: Preload de pagina completa

Cita:
pero se puede hacer q salga un mensaje que ponga cargando o algo así?
Creo que es esto lo que buscas:
isiajax.sourceforge.net/demos/basicos/cancel.html#cancel.php
  #10 (permalink)  
Antiguo 12/06/2007, 12:15
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

hola...

estoy viendo este tema que me interesa...

he probado el codigo de chalchis, pero no me carga las imagenes de la pagina...y necesito que me carge el html y, por ejemplo, la carpeta imagen, o algo asi...
__________________
ilustradordiseñadorweb
  #11 (permalink)  
Antiguo 12/06/2007, 12:27
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: Preload de pagina completa

algun error en particular???

saludos
__________________
gerardo
  #12 (permalink)  
Antiguo 13/06/2007, 02:19
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

ningun error...pero solo carga el html y una vez caragado (muy rapido) empieza a cargar las imagenes...

necesito que carge las imagenes antes de mostrar el html...
__________________
ilustradordiseñadorweb
  #13 (permalink)  
Antiguo 13/06/2007, 02:40
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Preload de pagina completa

Cita:
Iniciado por marisolivier Ver Mensaje
ningun error...pero solo carga el html y una vez caragado (muy rapido) empieza a cargar las imagenes...

necesito que carge las imagenes antes de mostrar el html...
Hola:

Parece que no leíste bien el desarrollo de este tema: Si tu problema es que se descuadra ...

Más o menos debes tener oculto el body con estilos ya sea con display o visibility, y en el head poner un script más o menos así:

function cargando() {
cargadas = true;
for (i = 0, total = document.images.length; i < total; i ++)
cargadas = cargadas && document.images[i].complete;
if (cargadas) document.body.style.visibility = "visible";
else setTimeout("cargando()", 100);
}

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo

Última edición por caricatos; 13/06/2007 a las 07:29
  #14 (permalink)  
Antiguo 13/06/2007, 07:22
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Pregunta Re: Preload de pagina completa

creo que marisolivier deberias mostrar lo que realmente deseas hacer
= alguien mas publique una solucion mas rapida

saludos
__________________
gerardo

Última edición por chalchis; 13/06/2007 a las 09:39
  #15 (permalink)  
Antiguo 13/06/2007, 08:14
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Re: Preload de pagina completa

Cita:
Iniciado por chalchis Ver Mensaje
creo que deberias mostrar lo que realmente deseas hacer
= alguien mas publique una solucion mas rapida

saludos
No sé porqué, me parece que tú tampoco has leído el desarrollo del mensaje...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #16 (permalink)  
Antiguo 13/06/2007, 09:40
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: Preload de pagina completa

je el mensaje fue para marisolivier

saludos
__________________
gerardo
  #17 (permalink)  
Antiguo 13/06/2007, 14:45
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Preload de pagina completa

como comenta caricatos, la cosa es tan sencilla como meter todo el contenido del body en un div que esté oculto, mientras mostramos otro div con por ejemplo un gif animado que ponga "cargando". Cuando la página está cargada ocultamos el div que pone "cargando" y visualizamos el que tiene el contenido de la página con el evento Onload.

saludos
  #18 (permalink)  
Antiguo 14/06/2007, 05:45
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

esta solucion me parece bastante buena...

me podrias pasr un codigo que funcciones?...

gracias
__________________
ilustradordiseñadorweb
  #19 (permalink)  
Antiguo 14/06/2007, 05:46
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Parece que no leíste bien el desarrollo de este tema: Si tu problema es que se descuadra ...

Más o menos debes tener oculto el body con estilos ya sea con display o visibility, y en el head poner un script más o menos así:

function cargando() {
cargadas = true;
for (i = 0, total = document.images.length; i < total; i ++)
cargadas = cargadas && document.images[i].complete;
if (cargadas) document.body.style.visibility = "visible";
else setTimeout("cargando()", 100);
}

Saludos
voy a probar eso tambien...

gracias!...
__________________
ilustradordiseñadorweb
  #20 (permalink)  
Antiguo 14/06/2007, 05:49
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

Cita:
Iniciado por chalchis Ver Mensaje
creo que marisolivier deberias mostrar lo que realmente deseas hacer
= alguien mas publique una solucion mas rapida

saludos
estoy reaciando mi web:

http://www.ofgms.com/clientes/ofgms/

y como veis tarda mucho en cargarse las imagenes y no quiero que se pueda entrar porque sino descuadra todo...
__________________
ilustradordiseñadorweb
  #21 (permalink)  
Antiguo 14/06/2007, 05:51
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

Cita:
Iniciado por marisolivier
Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Parece que no leíste bien el desarrollo de este tema: Si tu problema es que se descuadra ...

Más o menos debes tener oculto el body con estilos ya sea con display o visibility, y en el head poner un script más o menos así:

function cargando() {
cargadas = true;
for (i = 0, total = document.images.length; i < total; i ++)
cargadas = cargadas && document.images[i].complete;
if (cargadas) document.body.style.visibility = "visible";
else setTimeout("cargando()", 100);
}

Saludos
voy a probar eso tambien...

gracias!...
he probado el codigo lo podeis ver aqui:

http://www.ofgms.com/clientes/ofgms/home.html

como hago para que se vea algo mientras se carga eso?...
__________________
ilustradordiseñadorweb
  #22 (permalink)  
Antiguo 14/06/2007, 06:19
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

ademas muestra el html y sigue luego cargando imagenes...

:\
__________________
ilustradordiseñadorweb
  #23 (permalink)  
Antiguo 14/06/2007, 06:27
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Preload de pagina completa

a ver tu haces esto:

Código:
<body oncontextmenu="return false" onLoad="precargar()" style="visibility: hidden">
<!-- CONTENEDOR -->
<div id="contenedor">
y lo que tienes que hacer es esto:

Código:
<body oncontextmenu="return false" onLoad="precargar()" >
<!-- CONTENEDOR -->
<div id="contenedor" style="visibility: hidden">
entonces si quieres que se vea algo mientras carga, creas un div fuera de "contendor" visible. Y en el onLoad del body, haces que cuando haya cargado haga visible "contenedor" y oculto el otro div.

Eso es todo. A propósito muy buenas ilustraciones, un trabajo excelente.

Saludos
  #24 (permalink)  
Antiguo 14/06/2007, 09:22
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

si me pasas el codigo para el div visible que me comentas estaria encantado!...

gracais por tu comentario sobre mi trabajo...
__________________
ilustradordiseñadorweb
  #25 (permalink)  
Antiguo 14/06/2007, 10:38
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Preload de pagina completa

ejemplo sencillo

Código:
<body onLoad="document.getElementById('precarga').style.visibility='hidden';document.getElementById('contenedor').style.visibility='visible';" >

<div id="contenedor" style="visibility: hidden">
...
</div>

<div id="precarga" style="visibility: visible">
cargando página por favor espere
</div>


</body>
espero que ahora ya lo tengas claro ;)
  #26 (permalink)  
Antiguo 14/06/2007, 14:22
Avatar de chalchis  
Fecha de Ingreso: julio-2003
Mensajes: 1.773
Antigüedad: 20 años, 9 meses
Puntos: 21
Re: Preload de pagina completa

un comentario si tratamos de visualizar imagenes al cargar la pagina
podriamos usar miniaturas y posteriormente mostrar la imagen a ver completamente

no se que opinen amigos.

y porcierto felicidades a los que han posteado scripts para este tema

saludos amigos
__________________
gerardo
  #27 (permalink)  
Antiguo 18/06/2007, 03:24
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

Cita:
Iniciado por dblanco Ver Mensaje
ejemplo sencillo

Código:
<body onLoad="document.getElementById('precarga').style.visibility='hidden';document.getElementById('contenedor').style.visibility='visible';" >

<div id="contenedor" style="visibility: hidden">
...
</div>

<div id="precarga" style="visibility: visible">
cargando página por favor espere
</div>


</body>
espero que ahora ya lo tengas claro ;)
me da error de javascript: no se pudo obtener la propiedad visibility. argumento no valido
__________________
ilustradordiseñadorweb
  #28 (permalink)  
Antiguo 18/06/2007, 04:26
 
Fecha de Ingreso: enero-2004
Mensajes: 207
Antigüedad: 20 años, 3 meses
Puntos: 1
Re: Preload de pagina completa

asegúrate de que el nombre que pongas dentro de getElementById('') coincida con el ID del Div.
  #29 (permalink)  
Antiguo 18/06/2007, 04:40
Avatar de marisolivier  
Fecha de Ingreso: septiembre-2005
Ubicación: daganzo (madrid)
Mensajes: 76
Antigüedad: 18 años, 8 meses
Puntos: 0
Re: Preload de pagina completa

lo he puesto tal como lo distes...
__________________
ilustradordiseñadorweb
  #30 (permalink)  
Antiguo 18/06/2007, 09:06
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Preload de pagina completa

Hola marisolivier

He probado el código de dblanco y no me ha dado ningún error

Saludos,
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Tema Cerrado

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 07:31.