xmlファイルを作成するループを実行するJavaScriptを取得しfor
、ループが完了した後、ユーザーがファイルをダウンロードできるリンクにアクセスしようとしています。現在、ファイルの作成の途中で、ファイルをダウンロードするためのリンクがユーザーに送信されます。
この質問のアドバイスに従い、コールバック変数を作成し、ダウンロードリンクを別の関数に移動しましたが、それでも問題は解決していません。他の誰かがそれを行う方法を知っていますか?私のコードは次のとおりです。
var callbackcount=0;
function populateTemplate(numResults) {
for (i=1; i < numResults; i++) {
$.post('linkToTheFileThatCreatesTheXMLFile', {WithSomeParameters};
download(numResults);
}
}
function download(numResults) {
callbackcount++;
if (callbackcount == numResults) {
window.location.href="linkToPHPThatDownloadsFile";
}
}
ありがとうヒープ
編集: Console.logの結果:
LOG: 230 LOG: 330 LOG: 230 LOG: 330
LOG: 430 LOG: 530 LOG: 630 LOG: 730
LOG: 830 LOG: 930 LOG: 1030 LOG: 1130
LOG: 1230 LOG: 1330
numResults=7の場合
LOG: 27 LOG: 37 LOG: 47
また
LOG: 27 LOG: 37 LOG: 47 LOG: 57
等
編集: 新しいコード:
function populateTemplate(numResults) {
var callbackcount = 1;
for (i=1; i < numResults; i++) {
$.post('linkToTheFileThatCreatesTheXMLFile', {WithSomeParameters}, function() {
callbackcount++;
console.log(callbackcount, numResults);
if(callbackcount === numResults - 1) {
window.location.href="linkToPHPThatDownloadsFile";
}
});
}
}