2012-11-14 4 views
0

이미지가있는 디렉토리를 사전로드하려고합니다.사전로드 이미지 디렉토리

preload.php

<?php 
function listImages($dir){ 
    $ffs = scandir($dir); 
    foreach($ffs as $ff){ 
     if($ff != '.' && $ff != '..' && strstr($ff, '.png') || strstr($ff, '.jpg') || strstr($ff, '.gif') || strstr($ff, '.jpeg')){ 
      echo '"images/'.$ff; 
      if(is_dir($dir.'/'.$ff)) listFolderFiles($dir.'/'.$ff); 
      echo '", '; 
     } 
    } 
} 
echo '[ '; 
listImages('images'); 
echo ']'; 
// output: ["image1.png", "image2.png"] etc. 
?> 

footer.php

<script type="text/javascript"> 
    // put contents of all_images.php file into variable 'images' 

$.ajax({ 
    type: "GET", 
    async: false, 
    cache: false, 
    url: "./preload.php", 
    data: "getid=true", 
    success: function(data){ 
    images=data; 
    } 
}); 

    // The variable 'images' now contains string of file names 
    // needed to be preloaded. 
    $.fn.preload = function() { 
     this.each(function(){ 
      $('<img/>')[0].src = this; 
     }); 
    } 


</script> 


<script type="text/javascript"> 
$(document).ready(function(){ 
$(images).preload(); 
</script> 

를하지만 제대로 작동 나던 :

지금까지 나는이 코드를 사용하고 있습니다. 파이어 버그에서 나는 "이미지"$(images).preload(); 내가 오류가 does`nt 대신 내 모든 링크를 붙여 넣을 경우 uncaught exception: Syntax error, unrecognized expression:

를 얻을 수 있지만, 내 이미지는로드되지 않습니다.

어떤 도움을 주셔서 감사합니다. 여기 하루 종일 그것을 파악하려고 노력하고 있습니다. 1

업데이트 # 그래서, 지금과 같이 그 일을 메신저 : 지금까지

$(document).ready(function(){ 
    $.getJSON("./preload.php?getid=true", function(data) { 
    var images = []; 
    $.each(data, function(i, val) { 
     images[i] = new Image().src=val;` 

     $.fn.preload = function() { 
      this.each(function(){ 
       $('<img/>')[0].src = this; 
      }); 
     } 
     $(images).preload(); 
    }); 
    }); 
}); 

오류 없음,하지만 이미지는 파이어 버그의 "네트워크"탭에 표시 해달라고.

+1

실행을 시도하고 JSON을 사용하여 다음을 그것을 얻으십시오. – mplungjan

+0

'dataType : 'json''을 AJAX 설정에 추가 해보십시오. 데이터 유형 – Korikulum

+0

: 'JSON은'내가 ReferenceError가'얻을 : 이미지 defined'되지 – fourgood

답변

3

몇 가지 문제

[JSON 인코더 (http://php.net/manual/en/function.json-encode.php)를 통해 getJSON

$(document).ready(function(){ 
    $.getJSON("./preload.php?getid=true", function(data) { 
    var images = []; 
    $.each(data, function(i, val) { 
     images[i] = new Image().src=val; 
    }); 
    }); 
}); 
+0

이걸로 얻을 수 있습니다 : 'ReferenceError : images is not defined' – fourgood

+0

업데이트를 참조하십시오. document.ready도 잘못되었습니다. – mplungjan