Hola otra vez:
Tunait: En el post que puse antes se hablaba de precarga, y de el uso de complete, que indica que se cargado totalmente en memoria, hice unas pruebas y parece que funciona bien.
Preparé una página que se puede ver
aquí .
De todos modos es poco el código así que lo voy a insertar.
Código PHP:
<html>
<head>
<title>
precarga
</title>
<script language=javascript>
var base = "http://www.sucaricatura.com/2003/maxi/2003V00";
var imagenes;
var ventana = false;
var contenido = [false, false, false, false, false, false, false, false, false, false];
var cargando = true;
var suma = 0;
function detalle(n) {
var info = "<html><body><center>";
info += "<table style='width:200; height:20; border:1; background-color:aqua'>";
info += "<tr><td id='valor' style='background-color: blue; width:0";// + n * 20;
info += "'></td><td></td></tr></table></center></body></html>";
return info;
}
var stop = false;
var im = 0;
function flash() {
document.images.flash.src = imagenes[im].src;
im = ++im % 10;
if (!stop) setTimeout("flash()", 250);
}
function mostrar() {
var carga = false;
for (var i = 0; i < imagenes.length; i ++)
if (imagenes[i].complete)
if (!contenido[i]) {contenido[i] = true; suma++;}
cargando = suma < 10;
if (!ventana && cargando) {
ventana = window.open("", "", "top=100,left=100,width=250,height=40");
ventana.document.writeln(detalle(suma));
}
else ventana.document.getElementById("valor").style.width = suma * 20;
if (cargando) setTimeout("mostrar()", 10);
else {ventana.close(); flash();}
}
function precarga() {
imagenes = new Array();
for (var i = 0; i < 10; i ++) {
imagenes[i] = new Image();
imagenes[i].src = base + i + ".jpg";
}
mostrar();
}
</script>
</head>
<body onload="precarga()">
<center>
<div id=precarga>
precarga
</div>
<img src="" name=flash onclick="stop = true;">
</center>
</body>
</html>
La función flash es para probar que se muestran rápidamente, hay que pinchar sobre la transición de imágenes para detenerlas.
Saludos
Hola otra vez:
Hoy subí una versión más bonita en
este link .
No copio el código, porque es básicamente el mismo, pero está mejorada la presentación del porcentaje, y se hace una precarga de más imágenes, siendo más fácil de adaptar a distintas necesidades.
En netscape funciona bien, pero me parece que la gestión de la caché no es muy buena... en opera, da unos fallos que no creo que tengan que ver con la precarga.
Saludos