私は次のコードを持っています:
var table = new Array();
function getTableData(year) {
if (!table.hasOwnProperty(year)) {
$.ajax({
...
success: function(data) {
table[year] = data;
}
});
}
}
したがって、その関数に実行させたいのは、基本的に、以前にそのAjaxリクエストを呼び出したことがあるかどうかを確認することです。呼び出した場合は、再度呼び出さずに、以前にロードされたデータを返します。
これは魅力のように機能します。動作しないのはこれです:
function showTable(year) {
$('#loadingAnimation').show();
$('#tableDiv').ajaxComplete(function() {
// insert data into table
}
$('#loadingAnimation').hide();
}
以前にデータがロードされていない限り(つまり、table [year]がまだ存在しない限り)、ajax-requestが実行され、データが完了すると、データがテーブルに挿入され、すべてが正常に機能します。しかし、table [year]が存在する場合、関数には待機するものがなく、空白のテーブルと読み込み中のアニメーションが表示されます。
私が以前に試したのは、ajax-requestを同期に設定し、関数で「ajaxComplete」を呼び出さないようにすることです。その後、すべてが機能しますが、アニメーションの読み込みがまったく行われず、待機期間中に画面がフリーズします。
スクリプトを機能させる方法はありますか?前もって感謝します :)