1

.postリクエストが開始されて終了したかどうかを判断する方法はありますか。

つまり、コードがある場合:

$.post('address.php', { value: value }, function(data) {
    alert(data);    
});

.postロード中の画像を表示し、そのリクエストの完了時にそのロード中の画像を非表示にすることが開始されたことをどのように知ることができますか。

ほとんどのウェブサイトがこの種のアルゴリズムを使用しているため、これを行う方法があることはわかっています。そして、私はそれを書きたいですjQuery

入力はありますか?

4

3 に答える 3

2

AJAX リクエストは常にすぐに開始されるため、いつ終了したかだけを知る必要があります。ローダーは、リクエストを送信する直前に表示できます。

成功したか失敗したかを知る必要がある場合は、次の方法を使用することをお勧めします。

// Show your loader image
$("#loader").show();

$.post("address.php", {
    value: value
}).done(function() {
    // Only on success (HTTP status code < 400)
    alert("Success!");
}).fail(function() {
    // Only on errors (HTTP status code >= 400)
    alert("Error :(");
}).always(function() {
    // Hide your loader image.
    // Will always happen, after .done()/.fail() were fired.
    $("#loader").hide();
});
于 2013-07-18T09:22:36.763 に答える
0

$.post の代わりに $.ajax を使用する場合 ( $.post は、単に簡略化された Ajax 関数です)、beforeSendおよびcompleteコールバック (または成功コールバック - ただし、エラーが発生した場合、このコールバックは実行されない可能性があります) を使用して、ロード中のアイコンを ajax 呼び出し自体に表示および非表示にするロジック。この例は次のようになります。

$.ajax({
    type: 'POST',
    data: { value : value },
    url : 'address.php',
    beforeSend : function() { 
        $("#myloader").show(); 
    },
    complete : function() { 
        $("#myloader").hide(); 
    },
    success : function(data) {
        console.log('success');
    }
});

また、ここに jQuery ドキュメントの Ajax セクションへのリンクがあるので、利用可能なコールバックやその他のオプションについて詳しく読むことができます。http://api.jquery.com/jQuery.ajax/

于 2013-07-18T09:33:35.007 に答える