私は次のような状況にあります。サーバーからファイルAをロードしたいのですが、サーバーは(Aの内容に応じて)ファイルA1、A2、A3、...をロードしようとします。各ファイルA[1-n]
は他のファイルをロードし、これを続行できます。はい、それには終わりがあります。
残念ながら、私は同期を使用する必要があることに気付きました$.ajax requests
。そうしないと、最初の$ .ajax呼び出し(ファイルAのロードが終了したとき)が残りのファイルを経由せずに戻るだけです。私の関数は次のようになります:
loadFile = function (path, file, scope)
{
$.ajax ({
url: url,
type: 'GET',
dataType: 'text',
success: function (responseData)
{
var lines = responseData.split("\n");
for (var j = 0; j < lines.length; j++)
{
if (lines[j].charAt(0) === 'F')
loadFile (arguments);
}
}
});
}
私の最初の質問は、なぜ「async:false」を上記のオプションに追加できないのかということ$.ajaxSetup({async: false});
です。そうしないと機能しないため、代わりに使用する必要があります。
私の2番目の質問は、これがこのジョブを再帰的に実行するために使用する正しいパターンです。
私の3番目の質問は、プロセス全体がいつ完了したかをどうやって知ることができるかということです。私はこれを理解することはできません。