Foros del Web » Programando para Internet » Javascript »

Una pequeña duda con script para pre-cargar imagenes.

Estas en el tema de Una pequeña duda con script para pre-cargar imagenes. en el foro de Javascript en Foros del Web. Hola, he estado informandome sobre lo de precargar imagenes con una javascript, y tengo entendido que el código que tengo que usar es algo asi: ...
  #1 (permalink)  
Antiguo 12/03/2009, 10:27
 
Fecha de Ingreso: enero-2009
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 0
Una pequeña duda con script para pre-cargar imagenes.

Hola, he estado informandome sobre lo de precargar imagenes con una javascript, y tengo entendido que el código que tengo que usar es algo asi:

Cita:

En el index:
<body onLoad="cargarImagenes ();">

y luego el código:

function cargarImagenes (){
var img = new Image ();
for (var i=1; i<=10; i++){
img.src = "imagen" + i + ".jpg";
}
}
Mi duda es, con eso cargo tooooodas las imágenes que quiera? es decir, todas las que tengo para los fondos y demás que son comunes a toda la página, y ya me sirve para cuando navegue no tener que esperar a que carguen???
O en cada archivo que quiero que pre-cargue las fotos tengo que incluir el código?

Es que, actualmente tengo este código en cada archivo, y la verdad es que no noto nada de que cargue mas rápido ni nada.

Cita:
<body onLoad="cargarImagenes ();">

<script language="javascript 1.2">
function cargarImagenes (){
var img = new Image ();
for (var i=1; i<=6; i++){
img.src = "interfaz/" + i + "b.jpg";
}
}
</script>
¿que hago mal? El script no esta bien situado o que?

Un saludo, y perdón por el tocho.
  #2 (permalink)  
Antiguo 12/03/2009, 13:53
Avatar de programeitor  
Fecha de Ingreso: febrero-2005
Mensajes: 994
Antigüedad: 19 años, 2 meses
Puntos: 9
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

La declaracion de nueva imagen va dentro del _for_, una por cada imagen que se va a precargar:

Código:
var img
for (var i=1; i<=6; i++)
{
img=new Image()
img.src="interfaz/"+i+"b.jpg"
}
Suponiendo que las imagenes se llaman todas algo asi como:
Código:
1b.jpg 2b.jpg .... nºb.jpg
Si quieres precargarlas realmente., no deberias hacerlo en el onload, sino al comienzo de la carga, es decir, la funcion no se llamara, quitala y deja solo las ordenes.

Referente a si te vale para navegar sin incluirlo en todas la paginas., en principio si, aunque depende del navegador y de la configuracion del usuario.

Saludos.
  #3 (permalink)  
Antiguo 12/03/2009, 15:54
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

Hola:

Cada vez estoy más convencido de que las precargas son una pérdida de tiempo y un incremento de trabajo inútil... además, la única razón más o menos justificable para su uso es el efecto rollover, pero con poquito de trabajo, te haces uno más efectivo... sin que sea el clásico cambio de imagen... (Y eso que yo puse algún tema sobre precargas en las FAQs... )

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #4 (permalink)  
Antiguo 13/03/2009, 12:07
 
Fecha de Ingreso: enero-2009
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

Cita:
Iniciado por programeitor Ver Mensaje
...
vale, gracias, ya decía yo que fallaba algo...xDD Lo voy a poner en el index, y ya esta, gracias :D

Cita:
Iniciado por caricatos Ver Mensaje
Hola:

Cada vez estoy más convencido de que las precargas son una pérdida de tiempo y un incremento de trabajo inútil... además, la única razón más o menos justificable para su uso es el efecto rollover, pero con poquito de trabajo, te haces uno más efectivo... sin que sea el clásico cambio de imagen... (Y eso que yo puse algún tema sobre precargas en las FAQs... )

Saludos
Hombre, yo no entiendo mucho, pero (al menos en mi caso) es preferible que tarde un poco en "arrancar" cuando se entra en la página y que luego vaya fluido, que no cada vez que vaya a una sección, se tire un rato para cargar las imágenes del fondo.

gracias por vuestra ayuda, un saludo.
  #5 (permalink)  
Antiguo 13/03/2009, 18:34
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

Cita:
Iniciado por elijo_otro Ver Mensaje
Hombre, yo no entiendo mucho, pero (al menos en mi caso) es preferible que tarde un poco en "arrancar" cuando se entra en la página y que luego vaya fluido, que no cada vez que vaya a una sección, se tire un rato para cargar las imágenes del fondo.
...
Es que eso no es lo que hace esa precarga...

Intenta razonar lo que hace el código que tienes... Sinceramente tiene poco sentido (ninguno)

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 14/03/2009, 13:41
 
Fecha de Ingreso: enero-2009
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

:O asi es eso?? jijiji ya decía yo que notaba poca mejora xD
El código me lo dijo un compañero que pusiera así, y así lo he puesto...entonces ¿que tengo que hacer para conseguir eso?

Un abrazo.
  #7 (permalink)  
Antiguo 15/03/2009, 00:48
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

Hola:

Bueno, la cosa es que ese código por lo que veo tan solo deja en memoria la última imagen del array de imágenes... sí, sólo la última, ya que al usar una sola variable, el segundo elemento del array/bucle machaca al primero, y así hasta el último que es el único que perduraría...

Aún creando un array con las imágenes, y consigas cargar todas, no sólo no hace nada con el flujo normal de la carga de la página, sino duplicas el espacio en memoria que ocupan esas imágenes, con lo que llego a la conclusión que sólo vale para ralentizar la carga de la página...

Otra cosa es que crear una variable con la imagen y tenerla en memoria no indica que se haya cargado... para eso existe el atributo complete que se pone true con el evento asociado a los medios /entre ellos las imágenes) "load", (onload, tanto de los objetos "Image()", como los tags "img")...

A qué conclusión podemos llegar... si quieres que no se muestre la página hasta que se carguen las imágenes, añádele a las imágenes un tratamiento de su evento load, y al cargarse todas mostrar esa página:

var contador = 0;
window.onload = function() {
for (i in document.images) document.images[i].omload = chequeo;
document.body.style.display = "none"
}

function checkeo() {
if (++contador == document.images.length) document.body.style.display = "block";
}

Pero ese sistema particularmente no me gusta... lo que me parece mejor es poner cada imagen con sus dimensiones, para que no se descuadre mientras la página se carga, y si lo quieres más bonito, poner una imagen del tipo "relojito" para mostrar que la imagen se está cargando... Hace poco puse algo de ese estilo en esta página: Caricaturas "San Jorge"

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 15/03/2009, 13:09
 
Fecha de Ingreso: enero-2009
Mensajes: 209
Antigüedad: 15 años, 3 meses
Puntos: 0
Respuesta: Una pequeña duda con script para pre-cargar imagenes.

vale vale, entonces, la conclusión es que lo que tengo puesto no ayuda en nada ^^. Te explico, es que la primera vez que cargas la página (que no están las imágenes en la caché) pues tarda unos segundos hasta que carga, entonces, un compañero me comento que con el código puse, se precargarían a la cache del navegador, y por eso luego iría mas rápido.

Pero vamos, tampoco es algo muy grave, era por mejorar lo que hay, lo que si me interesa e lo del relojito para mientras carga las imágenes, para las galerías, lo voy a investigar a ver.

Gracias por tu ayuda!! =)
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.
Respuesta

SíEste tema le ha gustado a 1 personas




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