私はhtmlページの表をajaxで更新する関数を持っています。このajax呼び出しには非常に時間がかかります。私は、関数がsetTimeoutの遅延の前に終了するので、ajax呼び出しがメモリリークなしで終了したら、次のコードが再びそれを実行すると信じていました。しかし、私がchromeの開発ツールを使ってプロセスを見ると、makeTable()関数の多くのインスタンスを見ることができ、エラーFailed to load resource: the server responded with a status of 500 (Internal Server Error)
がコンソールに表示されます。これを行うより良い方法はありますか? AJAX呼び出しが完了した後だけjavascript終了後に関数を再実行する方法
function makeTable() {
$.ajax({
url: "TableView.asp",
type: "GET"
}).done(function (ret) {
$("#info_display").html(ret);
makeYellowTable(); //<--- here this function is called only after the ajax completes.
});
}
makeYellowTable()
AJAXコールバックの内側にmakeYellowTable()
関数呼び出しを移動
function makeTable() {
$.ajax({
url: "TableView.asp",
type: "GET"
}).done(function (ret) {
$("#info_display").html(ret);
});
setTimeout(makeTable, 5000);
}
'Internal Server Error'はJavascriptとは関係ありませんAJAXを介して悪い値)。 –
'done()'の中で呼び出しを行うのはなぜですか? –