私は自分のウェブサイトで非同期呼び出しを使うべきかどうか疑問に思っていました。これを明示的に指定する必要があるので、使用する必要があります
$.ajax
しかし、最初は$.get
を使用してみましたが、サーバーは多くの情報を返さなければなりませんでしたが、私のブラウザーはスタックせず、問題なくナビゲートできました。
私はそれについて少しオンラインで検索しましたが、2つの違いについてはまだ100%確実ではありません。
$.get
が非同期の場合、$.ajax
の意味は何ですか?そうでない場合は、$.get
でナビゲーションの問題がなかったことが再度わかります。$.ajax
を使用する意味は何ですか。
前もって感謝します
はい、 $.get
は非同期です。ドキュメントから:
これはAjax関数の短縮形であり、以下と同等です。
$.ajax({ url: url, data: data, success: success, dataType: dataType });
...そしてasync
オプションがないため、async
はデフォルトでtrue
になります。 (async
は、jQueryの将来のバージョンでは完全に廃止されることに注意してください。alwaysはtrueになります。)
$.get
が非同期の場合、$.ajax
の意味は何ですか?
$.ajax
を使用すると、さらに多くのオプションを制御できます。 $.get
は単なるショートカットです。
$.get
は、以下の省略形です。
$.ajax({
url: url,
data: data,
success: success,
dataType: dataType
});
jQuery
documentation で述べたように、$.get
は、より低レベルの$.ajax
の便利なラッパーです。
$ .ajaxとGETメソッド、これはpromiseオブジェクトでどうですか?
_function showResults(name) {
var deferred = $.Deferred, requests = [];
requests.Push($.ajax({url:"/path/to/uri/?name=" + name, type: "GET", async: false}).done(function(d) {
//alert or process the results as you wish
}));
$.when.apply(undefined, requests).then(function(d) { console.log(d); /*var d is a promised late return */ deferred.resolve(); });
return deferred.promise();
}
_
彼は返されたpromiseオブジェクトを$.when(showResults('benjamin')).done(function() { });
とともに使用して、(グラフ/グラフの設定などの)投稿の変更を行うこともできます。完全に再利用可能です。この関数を$ .deferredリクエストのループに入れることもできます。
_function updateResults() {
var deferred = $.Deferred, requests = [];
requests.Push($.ajax(url:"/path/to/names/?nameArr=" + jsonArrOfNames, type: "GET", async: false}).done(function(res) { requests.Push(showResults(res[0]));}) );
$.when.apply($, requests).then(function(d) { console.log(d); /*var d is a promised late return */ deferred.resolve(); });
return deferred.promise();
}
_