1

これは非常に単純なはずですが、解決できれば大変です。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 が完了していることがわかります....

4

2 に答える 2