Foros del Web » Programando para Internet » PHP »

Precargar carpeta de imagenes.

Estas en el tema de Precargar carpeta de imagenes. en el foro de PHP en Foros del Web. Hola que tal. Vereis, estoy buscando un codigo para poder precargar una carpeta de imagenes entera. Buscando por internet he encontrado un codigo que parece ...
  #1 (permalink)  
Antiguo 08/05/2012, 04:40
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Precargar carpeta de imagenes.

Hola que tal.

Vereis, estoy buscando un codigo para poder precargar una carpeta de imagenes entera.
Buscando por internet he encontrado un codigo que parece hacer lo que busco, pero dado que mis conocimientos son bastante limitados, me gustaria pediros ayuda para poder armar el codigo

El tutorial es el siguiente:
http://james.padolsey.com/javascript/preloading-images-from-a-directory/

En el explica esquematicamente los pasos a seguir, pero he intentado montarlo y no parece funcionar.

Por lo que he entendido consta de dos partes, un codigo php (que va en un archivo independiente), y un javscript que llama al php y a la precarga. pero ya os digo que no he conseguido hacerlo funcionar.

¿podria alguien echarme un cable por favor?

Muchas gracias de antemano.

Un saludo
  #2 (permalink)  
Antiguo 08/05/2012, 06:43
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Precargar carpeta de imagenes.

Podrias decirnos donde te tascas.... que es lo que no sabes hacer... será mas fácil para todos...
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 08/05/2012, 07:09
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

Muchas gracias por tu interes en ayudarme.

He subido un un rar con los archivos que he montado a partir de tutorial por si alguien pudiera hecharle un vistazo para ver que hago mal.

https://rapidshare.com/files/2704839036/precarga_imagenes.rar

Los he probado con un servidor local y poarece no hacer nada. Por lo menos en el cache no aparece ninguna imagen, con lo cual deduzco que no esta funcionando.

Muchas gracias

Un saludo
  #4 (permalink)  
Antiguo 08/05/2012, 09:48
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

Tambien he probado a incluir jQuery por si pudiera ser el problema, pero sigue sin funcionar.

  #5 (permalink)  
Antiguo 08/05/2012, 10:01
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Precargar carpeta de imagenes.

Cita:
He subido un un rar con los archivos que he montado a partir de tutorial por si alguien pudiera hecharle un vistazo para ver que hago mal.

https://rapidshare.com/files/2704839...a_imagenes.rar
Es muy dificil que alguien te colabore si tenemos que ir a descargar un código y bajarlo para poder ver que esta haciendo.

Lo mas facil que puedes hacer es mirar el código de javascript y a traves de tutoriales irlo entendiendo poco a poco. Si tienes una duda en concreto sera mas sencillo ayudar que una pregunta tan general como no me funciona sin mayores pistas.
__________________
Blog de humor http://elcuasatar.net63.net/
  #6 (permalink)  
Antiguo 08/05/2012, 10:10
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

No es solo un codigo, es una carpeta con varios archivos (2 php y una carpeta con imagenes). Lo he añadido porque me parecia la manera mas facil de que alguien me pudiera ayudar.

El codigo esta en mi primer post (en un enlace a un tutorial) que he tratado de seguir con los siguientes pasos:

Un index.php con el siguiente codigo:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript">jQuery.noConflict();</script>
<script type="text/javascript">
/* JavaScript Component */
 
function preloadImagesFromDirectory(dir) {
 
    if(!dir) return;
 
    function getJSON(URL,success){
 
        // Create new function (within global namespace)
        // (With unique name):
        var uniqueID = 'json'+(+(new Date()));
            window[uniqueID] = function(data){
                success && success(data);
            };
 
        // Append new SCRIPT element to DOM:
        document.getElementsByTagName('body')[0].appendChild((function(){
            var script = document.createElement('script');
            script.type = 'text/javascript';
            script.src = URL.replace('callback=?','callback=' + uniqueID);
            return script;
        })());
 
    }
 
    function preload(srcArray) {
        for(var i = 0; i < srcArray.length; i++) {
            (new Image()).src = srcArray[i];
        }
    }
 
    // Get that JSON data:
    getJSON('scanImageDirectory.php?directory=' + encodeURIComponent(dir) + '&callback=?', function(data){
        return data.images ? preload( data.images ) : false;
    });
 
}
//
// We don't want to disturb anything so we'll wait
// until everything's done loading before preloading:
window.onload = function(){
    preloadImagesFromDirectory('images/');
}
  
</script> 
</head>

<body>
</body>
</html>
Y un php aparte (scanImageDirectory.json.php) con este otro codigo:


Código:
<?php
/* PHP file, e.g. scanImageDirectory.json.php */
 
// Check that a callback function has been specified:
if (!isset($_GET['callback']) || !isset($_GET['directory'])) exit;
 
// Use PHP5's scandir function to scan all

// of images directory:
$dirContents = scandir($_GET['directory']);
 
// Define function to confirm each
// filename is a valid image name/extension:
function isImageFile($src) {
    return preg_match('/^.+\.(gif|png|jpe?g|bmp|tif)$/i', $src);
}
 
// Loop through directory files and add to
// $arrayContents on each iteration:
$arrayContents = '';
foreach($dirContents as $image) {
    if (isImageFile($image)) {
        $arrayContents .= !empty($arrayContents) ? ',' : '';
        $arrayContents .= '"' . 'images/' . $image . '"';
    }
}
 
// Prepate JSON(P) output
$output = $_GET['callback'] . '({\'images\':[' . $arrayContents . ']});';
 
// Output the output:
echo $output;
?>
Junto a estos php hay una carpeta images (con varias imagenes en su interior)


Asi es como yo he entendido el tutorial del cual pongo el enlace en mi primer post.
Pero no se si he hecho los pasos de manera correcta.

Agradeceria alguien pudiera ayudarme.

Un saludo
  #7 (permalink)  
Antiguo 09/05/2012, 12:06
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

¿Alguien me puede ayudar por favor? estoy totalmente bloquedao.

Gracias

Saludos
  #8 (permalink)  
Antiguo 09/05/2012, 12:37
Avatar de cuasatar  
Fecha de Ingreso: junio-2011
Ubicación: Bogotá Rock City
Mensajes: 1.230
Antigüedad: 12 años, 10 meses
Puntos: 181
Respuesta: Precargar carpeta de imagenes.

Cita:
¿Alguien me puede ayudar por favor? estoy totalmente bloquedao.

Gracias
Pues ayudanos a ayudarte, si no nos dices que error coloca el script al ejecutarse todavía Harry Potter no nos ha dado la varita magica para adivinar que esta sucediendo.

Honestamente no se como funciona el script, pero ojeandolo encontre que:

Código PHP:
 getJSON('[B]scanImageDirectory.php[/B]?directory=' encodeURIComponent(dir) + '&callback=?', function(data){
        return 
data.images preloaddata.images ) : false;
    }); 
Si el archivo php lo llamas scanImageDirectory.json.php pero al invocarlo en el script lo colocas como scanImageDirectory.php es claro que jamas lo va a encontrar.

Espero eso solucione tu problema.
__________________
Blog de humor http://elcuasatar.net63.net/
  #9 (permalink)  
Antiguo 09/05/2012, 13:12
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

Disculpa mi ignorancia pero mis conocimientos son muy limitados.

Explico lo que me gustaria hacer por si alguien pudiera remitirmea algun tutorial o codigo que haga algo parecido.

Lo que me gustaria hacer es que una vez cargada la pagina se llame una funcion que precargue una carpeta de imagenes para poder tenerlas en el cache para su posterior uso.

Esto es lo que se supone que hace el codigo del tutorial que indico en el inicio del post. pero debido a que no hay una demo del codigo, no se si funciona correctamente y ni siquiera se lo que deberia hacer el codigo; supuestamente preccarga una carpeta de imagenes pero no me aparecen en el cache con lo cual supongo que no funciona.

Mi peticion concreta es que si alguien entiende mejor el tutorial, me indique los pasos a seguir para montar el codigo. (ya que no indica los pasos a seguir) No indica si el codigo es jquery o javascript. No indica si tiene que ir en archivos separados, no indica los nombres de los archivos...

en fin...

Siento no poder preguntar una duda mas concreta, pero como veis ando bastante perdido.

gracias por vuestra paciencia.

Un saludo
  #10 (permalink)  
Antiguo 09/05/2012, 13:55
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

Parece ser que el tema del nombre era lo que fallaba, lo he cambiado y ahora si se genera un array con las imagenes, pero el tema es que siguen sin aparecer en la cache.

esto no guarda las imagenes en la cache?

Código HTML:
	var p = new Image();
        p.src = srcArray[i];
Como tendri a que precargar imagenes para que queden almacenadas en cache?


gracias
  #11 (permalink)  
Antiguo 09/05/2012, 14:30
 
Fecha de Ingreso: mayo-2012
Mensajes: 28
Antigüedad: 11 años, 11 meses
Puntos: 0
Respuesta: Precargar carpeta de imagenes.

Ya me funciona todo ok.

Muchas gracias

Un saludo

Etiquetas: imagenes, carpetas
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




La zona horaria es GMT -6. Ahora son las 16:02.