これは非常に単純なはずですが、解決できれば大変です。ajaxの処理中にdivを表示し、完了したら非表示にしようとしています(ローカルでの動作をテストするためだけにスリープを入れました。読み込みが非常に速いため、動作しているかどうかはわかりません)!
HTMLページには、スクリプトに次のコードがあります: -
$(document).ready(function(){
$("#loadingGIF").ajaxStart(function () {
$(this).show();
});
$("#loadingGIF").ajaxStop(function () {
window.setTimeout(partB,5000)
$(this).hide();
});
function partB(){
//just because
}
var scenarioID = ${testScenarioInstance.id}
var myData = ${results as JSON}
populateFormData(myData, scenarioID);
});
次に、私のページに次のような div があります (非表示にしたばかりのページのソースで確認できます): -
<div id="loadingGIF" ><img src='${application.contextPath}/images/spinner.gif' height="50" width="50"></div>
次に、準備完了コードがオフになり、これを呼び出します: -
function populateFormData(results, scenarioID) {
$table = $('#formList')
for(var i in results){
var formIDX = (results[i]["forms_idx"])
var formID = (results[i]["form_id"])
appendSubTable(formIDX, scenarioID, $table, formID);
}
}
いくつかのAJAX投稿を呼び出すこれを複数回参照するもの:-
function appendSubTable(formIDX, scenarioID, $table, formID) {
var $subTable = $table.find("#" + formIDX).find('td:eq(1)').find("div").find("table")
var url = "**Trust me this bits OK ;) **"
$.post(url, {
formIDX : formIDX, scenarioID : scenarioID, formID :formID
}, function(data) {
$subTable.append(data)
}).fail(function() {
});
}
感謝して受け取ったポインタ...
興味深いことに、いくつかのアラートを ajaxstart と stop にぶつけましたが、どちらも表示されないので、明らかな何かが欠けています :S コンソールを firefox で確認すると、すべての POST が完了していることがわかります....