2

というディレクトリにすべての画像をプリロードしたいのですがimg、そのディレクトリには というサブディレクトリも含まれていui_imagesます。

特定の画像の名前を配列に入れてプリロード作業を行うことで、特定の画像をプリロードする方法は知っていますが、そのディレクトリ内のすべての画像を動的に検索するようにスクリプトに指示する方法を知りたいimgですimg/ui_images

これが私のコードです:

var preloadImg = function(imgArr){
    $.each(imgArr, function(index,value){
        $("<img/>")[0].src = value;
    }); 
}

var arrimg = ['img/check.png','img/add_sub.png'];
preloadImg(arrimg);
4

2 に答える 2

6

http でディレクトリのリストを作成するための一般的に利用可能な機能はありません。私が考えることができるオプションは次のとおりです。

  1. (img001、img002 など) のような予測可能な方法で画像に名前を付けると、エラーが発生するまで画像を読み込むことができます。

  2. (img001、img002 など) のように予測可能な方法で画像に名前を付け、Web ページにその数を表す 1 つの数値制限値をコーディングします。

  3. プリロードするイメージ名のリストを提供する ajax 呼び出しを (クライアントとサーバーの両方で) 作成します。

  4. サーバーに画像名の配列をページに埋め込ませて、何をプリロードすればよいかがわかるようにします。

于 2012-09-09T20:55:57.000 に答える
3

私は自分のサイトの 1 つでパフォーマンスを改善することを考えていて、これを調べました。私のソリューションは機能しているようで、まだ他の場所では見たことがありません。

jqueryとphpを使用した2段階のアプローチ

  1. // jquery .load を介して画像をプリロードし、コールバックを介してキャッシュされたら削除します

    <div id="preload"></div>
    
    $('#preload').load('preload.php', function() {   
    $('#preload').remove();   
    });
    
  2. // preload.php 以下 - 画像フォルダーをループして、画像を非表示の div に挿入します

    <div style="display:none">
    <?php
    $dirf = 'images';
    $dir  = scandir($dirf);
    foreach ($dir as $file) {
    if (($file != '..') && ($file != '.')) {
        echo "<img src='images/$file' />";
        }
    }
    ?>
    </div>
    

これはFirefoxで機能しましたが、自由に批判または改善してください

于 2013-08-28T21:53:50.380 に答える