1

jQuery は、スクリプト ファイルをロードして解釈し、callback() 関数を呼び出す getScript( file, callback) 関数を提供します。

コールバックを実行する前に複数のファイルをロードする必要がある場合、次のような解決策を考えることができます。

function loadOrdered(files, callback) {
   $.getScript(files.shift(), files.length
       ? function(){loadOrdered(files, callback);}
       : callback
   );
}

ただし、これにより、ファイルが非常に特定の順序で読み込まれるようになります。つまり、ブラウザは次のスクリプトを読み込む前に、サーバーが応答するまで待機する必要があります。これにより、不要な遅延が発生する可能性があります。

ブラウザにスクリプトを順番に読み込ませることなく、上記のコードと同じ効果を得るにはどうすればよいですか?

4

2 に答える 2

3

head.jsの機能を実際に説明しましたが、それはあなたが探しているもののようです。

于 2012-10-25T10:44:53.823 に答える
3

これが私が提案する解決策です:

function loadUnordered(scripts, callback){

var loadCount = scripts.length;

function done(){
    loadCount -=1;
    if (loadCount==0){ 
        callback();
    }
}

for ( var i=0; i<scripts.length; i++){
    $.getScript(scripts[i], done);
}

}

同様の解決策がここに投稿されました:すべての ajax .load() リクエストが終了した後に関数を実行する

于 2012-10-25T10:40:48.220 に答える