1

私のajax呼び出しがデータを取得している間、この読み込みメッセージがあります。しかし、私は奇妙な結果を得ています。メッセージが表示され、ajax が終了するまで途中でレンダリングされるか、まったく表示されず、ユーザーは何が問題なのか疑問に思います。読み込みメッセージが必要な理由は、データが取得され、ダイアログ ボックスが開かれ、マップが描画され、マップのフィーチャ レイヤーがラベル付きで再描画されるまでに、約 5 ~ 10 秒の遅延があるためです。

これが私のコードです:

function loadData(v) 
{       
    var reg = 1; 
    var vId = v;                       
    var d =
    {
        regionType: reg,
        varId: vId
    };

    //$("#loading").ajaxStart(function () {
    //    $(this).show();
    //}).ajaxStop(function () {
    //    $(this).hide();
    //});

    $("#loading").ajaxStart(function () {
        $(this).show();
    });

    $.ajax({
        type: "GET",
        url: WebRoot + "ws/bis.asmx/Data",
        data: d,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function (data) {                

            fipsData = data.d;
            openBox(d); 
            init(regType, varId);

            $("#loading").ajaxStop(function () {
                $(this).hide();
            });

        } //ends success function
    });  //ends ajax call         
}; //ends message
4

3 に答える 3

0

問題は「これ」

$.ajaxStart(function () {
    $("#loading").show();
});

「this」変数の変更は、関数の呼び出し方法によって異なります。

http://devlicio.us/blogs/sergio_pereira/archive/2009/02/09/javascript-5-ways-to-call-a-function.aspx

上記のリンクは、js 関数呼び出しについて詳しく学ぶための良い出発点になる可能性があります。

于 2013-08-30T20:55:20.270 に答える