0

メインのリクエストを送信した後、完全なレスポンスを取得する前に、リモート php にエコーされるデータを取得したいと考えています。

その意図は、「私はもうすぐそこにいます - 残り5つのアイテム」または類似のものを表示することです...

これは私の現在のjsスクリプトです:

    function getdetails(){

    $("div#urltable").fadeOut('fast');
    $("div#ajaxLoading").fadeIn('fast');

    var checkurl = $('input#remoteurl').attr('value');
    if($("#checkBrokenLinks").prop('checked') == true){
        var checkonline = 'check';
    }
    else {
        var checkonline = 'skip';
    }

    $.ajax({
        type: "POST",
        url: "ajax-outlink_checker.php",
        data: {checkurl:checkurl, checkonline: checkonline}
    }).always(function(data) {

        var $response           = $(data);
        var whileRuningCount    = $response.filter('#whileRuningCount').html();


        $("div#whileRuningCount").fadeOut('fast');
        $("div#whileRuningCount").fadeIn('fast');
        $("div#whileRuningCount").html(whileRuningCount);
    }).done(function(result) {

        var $response=$(result);
        var urltable = $response.filter('#urltable').html();
        var whileRuningCount = $response.filter('#whileRuningCount').html();

        $("div#ajaxLoading").fadeOut('fast');
        $("div#urltable").fadeIn('fast');
        $("div#urltable").html(urltable);

    });
}

ご覧のとおり、 .always() を追加して、エコーの実行を php ファイルで取得しようとしました。しかし...私はそれを機能させる方法を誤解していると思います。

どんな助けも最も感謝されます。よろしく、サギブ。

4

2 に答える 2

1

.always()そのためではありません。それは、そのスニペットにあるものをリクエストが実行されたかどうかを意味するだけsuccess/done()です。fail()

「ほとんどそこに..」というメッセージを表示しようとしている場合、より良い方法は、N 秒ごとにポーリングし、サーバー内のデータ状態を調べて (フラグでしょうか?)、それに基づいて別async callのものを作成することです。serverフロントエンドにメッセージを表示します..

于 2013-04-30T16:26:33.447 に答える