8

Ajax はA同期的であるため、コールバックを使用します。

Ajax とまったく同じように、何らかの応答があるまでリモート URL ブロックへの呼び出しが必要ですが、非同期部分はありません。または、JAX 呼び出しを行いたいと言えますか。

次のことを実現するための手法はありますか (JQuery を使用) (... JQuery などを使用したソリューション):

function get_data() {
    $.ajax({
        type : "POST",
        url : "/foo"
    }).done(function(data, textStatus, jqXHR) {
        return data;
    }).fail(function(jqXHR, textStatus) {
        return null;
    });
}

var data = get_data();
// process `data`

私はただ疑問に思っています - 学びたいです。

実際には、返信までブロックしても問題ない場合があります。ブラウザーをブロックしてほしいと言っているのではなく、スクリプト ランタイムだけです。

4

1 に答える 1

12

async : falsejQueryを使用するときにブール値を設定するだけです(ドキュメントを確認してください)。注意: jQuery 1.8 の時点で、jqXHR ($.Deferred) で async: false を使用することは推奨されていません。完全/成功/エラーのコールバックを使用する必要があります。

jQuery を使用したくない場合、または内部で何が起こっているかを知りたい場合は、この をお読みください

xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;

なぜ非同期にしたくないのか疑問に思ってください...

于 2012-08-31T11:00:04.013 に答える