Hola,
Si he visto codigos para precargar imagenes de una web, pero todos son del tipo:
<SCRIPT LANGUAGE="JavaScript">
if (navigator.appVersion.substring(0,1) >= 3) {
i1=new Image;
i1.src='image1.gif';
i2=new Image;
i2.src='image2.gif'';
}
</SCRIPT>
No hay alguna codigo al cual le digas que quieres precargar todas las imagenes/ficheros de una determinada carpeta? en lugar de ir añadiendo las imagene o ficheros 1x1....
Saludos.
Busca a ver si exite una funcion parecida a opendir en JavaScript, abres el fichero y lees todos los archivos, y si es una imagen la muestras.
Si el servidor tiene PHP es sencillo, en esta web tiene un ejemplo:
http://www.javascriptkit.com/javatutors/externalphp2.shtml
Funcion opendir:
http://es2.php.net/function.opendir
no acabo de entenderlo, como se supone que un javascript (que se ejecuta en local) va a saber cuantos archivos hay en una carpeta remota? :-m
tamat es cierto, yo es que de javascript ni idea.
Realmente si puedes acceder al contenido de una carpeta remota en local a traves del protocolo ftp . Pero claro debes tener y configurar el servidor ftp .
ftp://ftp.rediris.es/
Sin duda lo mejor es apoyarse en un script que se ejecute en el servidor (por ejemplo PHP) y pasarle a javascrit un array con el contenido de la carpeta.
Hola,
Yo no entiendo nada de javascript por eso lo preguntaba.
Sobre, lo que decis pues nose, pero en teoria si se puede hacer:
http://javascript.internet.com/image-effects/image-preloader.html
Segun dice, con cargar ese .js e indicarle la carpeta donde estaran las imagenes y la extension de las mismas las precargara.
A ver si alguien puede mirarlo o echarle un ojo a ver. Yo esta tarde lo probare a ver si funciona. Como digo es eso, algo que precargue las imagenes de una determinada carpeta, para que cuando cargues la web tenerlas ya en cache y la navegacion sea mas fluida.
http://www.haan.net/js/preloader.js
preload('1','2','3','4','5','6','7','8','9','10','11','12','13','14','15');
Lo que hace es crear un array con los nombres de los archivos que le pases asi no tienes que poner /images/1.jpg
This script will preload images to enable your pages to load faster.
Lo que quiere decir que precarga para que la visualizacion sea mas rapida, pero no dice que muestre todas las que hay, de hecho no pone en el documento los tags <img src=...>, por lo que seguimos en las mismas, cada vez que quieras añadir una imagen nueva hay que editar el .js. Si tienes PHP en el servidor usalo como script.
<?php$dir=opendir("midir")while(($file=readdir($dir))!=NULL){ // Evaluar si es una imagen sino continue; echo '<img src="midir/'.$file.'">';}?>
Resisa el codigo xq me lo he inventado sobre la marcha.
EDIT: Me acabo de dar cuenta que el codigo que he puesto no precarga, sino que carga. Para precargar valdia este codigo:
<?php$dir_name="midir";$dir=opendir($dir_name);$i=0;while(($file=readdir($dir))!=NULL){ if(/* Si no es una imagen*/) continue; $files[$i++]=$file;}if(count($files)==0) return; echo '<script type="text/javascript"> var brochure = new Array();';for($i=0; $i<count($files); $i++) echo( 'brochure['.$i.'] = new Image(); brochure[i].src =\''.$dir_name.'/'. $files[$i].'\';' ); echo '</script>';?>
Esto debe ir en la cabecera (<head>).
Pues el codigo no va....
Me sale casi todo en gris ya que hay un " ' " sin colocar bien, ademas lo coloco donde creo que esta correcto, pero el ultimo "</script>" me sale en gris asi que tampoco creo que eso este correcto.
En teoria Martinez con lo que has hecho bien corregido y tal, podria precargar cualquier archivo de la carpeta que yo le mande?
AL rpincipio de todo de la pagina me sale como error:
var brochure = new Array();'; for($i=0; $i'; ?>
El codigo que he puesto dentro del head es este:
<?php$dir_name="midir";$dir=opendir($dir_name);$i=0;while(($file=readdir($dir))!=NULL){ if(/* Si no es una imagen*/) continue; $files[$i++]=$file;}if(count($files)==0) return; echo '<script type="text/javascript"> var brochure = new Array();';for($i=0; $i<count($files); $i++) echo( 'brochure['.$i.'] = new Image(); brochure[i].src =\''.$dir_name.'/'. $files[$i].'\';' ); echo '</script>';?>
Sq el phpBB no es muy bueno para hacer codigo XD.
<?php$dir_name="midir";$dir=opendir($dir_name);$i=0;while(($file=readdir($dir))!=NULL){ if(/* Si no es una imagen*/) continue; $files[$i++]=$file;}if(count($files)==0) return; echo '<script type="text/javascript"> window.onload = function() { var brochure = new Array();';for($i=0; $i<count($files); $i++) echo( ' brochure['.$i.'] = new Image(); brochure['.$i.'].src =\''.$dir_name.'/'. $files[$i].'\''; ' ); echo '}</script>';?>
Me sobraba un comilla simple.
Te deberia salir algo asi:
<script type="text/javascript">
window.onload = function() {
var brochure = new Array();
brochure[0] = new Image();
brochure[0].src ='midir/im1.jpg';
brochure[1] = new Image();
brochure[1].src ='midir/im2.jpg';
}</script>
Sinceramente no te entiendo que codigo pongo? con lo que has puesto no es lo mismo que el codigo de la web que te he puesto ¿?
Con este codigo:
<?php$dir_name="midir";$dir=opendir($dir_name);$i=0;while(($file=readdir($dir))!=NULL){ if(/* Si no es una imagen*/) continue; $files[$i++]=$file;}if(count($files)==0) return; echo '<script type="text/javascript"> window.onload = function() { var brochure = new Array();';for($i=0; $i<count($files); $i++) echo( ' brochure['.$i.'] = new Image(); brochure['.$i.'].src =\''.$dir_name.'/'. $files[$i].'\''; ' ); echo '}</script>';?>
Cuando cargo la pagina al principio de todo me sale esto:
Citarwindow.onload = function() { var brochure = new Array();'; for($i=0; $i'; ?>
Y eso que dices de "Te deberia salir algo asi: " ¿? No es lo mismo que poner para cada imagen una linea de codigo? para eso utilizo el anterior codigo.... no entiendo nada....
Yo odio profundamente ese tema de precargar las imagenes...
Si es para un menú, los hago con CSS y él solito se encarga de cargar y mantener en memoria todo.
Sino, que cargue a su ritmo cada imagen :P
Sobre todo son para las imagenes tipo cuando pasas el mouse por encima, que no tenga que cargas la imagen y salir, si no que ya esten todas esas, y cuando pases por encima pues ya este.
Pero tambien me interesa cargar algunas imagenes tipo screenshots para que la navegacion y tal vaya mas rapida.
Aunque a este paso me temo que voy a tener que hacr una linea de codigo para cada imagen XD.
Ops doble post
Si es para menús, es mucho mejor usar CSS y para las capturas de pantalla, no te compliques la vida! que se carguen a su ritmo.
Menú hecho con imágenes y CSS: http://www.jaloque.com/
(los 3 botones de arriba)
YAAAA TAA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! Me baje el appserv y lo probe, ya ta arreglado el codigo
<?php$dir_name="appserv";if(is_dir($dir_name)==false) return;$dir=opendir($dir_name);$pattern="(\.jpg$)|(\.png$)|(\.jpeg$)|(\.gif$)"; //valid image extensions$i=0;while(($file=readdir($dir))!=NULL){ if(eregi($pattern, $file)) $files[$i++]=$file;}if(count($files)==0) return; echo '<script type="text/javascript">'."\n\t". 'window.onload = function()'."\n\t{\n\t\t". 'var brochure = new Array();';for($i=0; $i<count($files); $i++) echo( "\n\t\tbrochure[".$i."] = new Image();" ."\n\t\tbrochure[".$i."].src ='".$dir_name."/". $files[$i]."';"); echo "\n\t}\n</script>";?>
Hasta te lo he puesto bonito para cuando veas el codigo. Una cosa en dir_name no pongas "midir/" que sino las imagenes se pondrian: midir//img.png
CitarYAAAA TAA!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
He subido la web al servidor y cuando carga la web y todo me sale al principio:
'."\n\t". 'window.onload = function()'."\n\t{\n\t\t". 'var brochure = new Array();'; for($i=0; $i"; ?>
¿Que pasa?, aunque eso solo me sale en Firefox en IE parece que va bien....
Edit: En IE no sale ese error pero tampoco me Precarga las imagenes. En "miDir" tengo que poner la URL relativa que seria "imgs" o tengo que ponerla toda "Http://www.web.com/imgs" ¿?
Sq no lo has guardado como .php
CitarSq no lo has guardado como .php
Anda que yo tambien XDDD
Pues parece que ya va bien, tanto en IE como en Firefox si que parece que precarge las imagenes :) .
Voy a hacer unas pruebas a ver que tal.
Y por cierto, muchas gracias MARTINEZ por tu tiempo y paciencia!!!!!!! Y como se dice por aqui, que dios te lo pague con hijos negros para no tener que lavarlos.
Si la velocidad es un factor. Tambien puedes unir todas las imagenes en un solo grafico.
Es lo que hace, por ejemplo, gmail.
(http://zerror.com/files/mailicons4.png)
Luego por CSS, desplazas la ventana de visualizacion, o el fondo, o recortas (hay varias maneras) para que salga el icono que quieres.
En el enlace que puse antes, usé esta tecnica: los 3 estados del botón estan en la misma imágen y voy cambiando el desplazamiento según hace falta.
Tei, aquí nos ignoran porque esto va de javascript! :D:D
Cita de: "Tei"Si la velocidad es un factor. Tambien puedes unir todas las imagenes en un solo grafico.
Es lo que hace, por ejemplo, gmail.
(http://zerror.com/files/mailicons4.png)
Luego por CSS, desplazas la ventana de visualizacion, o el fondo, o recortas (hay varias maneras) para que salga el icono que quieres.
Te me has adelantado. Iba a poner un ejemplo de youtube, pero viene siendo lo mismo.
Esta es la mejor forma de ahorrarse esperas, y demás tonterías.
Otro ejemplo:
(http://s.ytimg.com/yt/img/master-vfl42001.gif)
Si es eso exactamente lo que queréis hacer, usar javascript es una tontería bastante grande. A noser que os apetezca usar pngs, y no podáis usar el hack de png para explorer 6 por culpa con su background-position.