23

Webサイトで非同期呼び出しを使用する必要があるかどうか疑問に思いました。私はこれを明示的に指定することを知っています私は使用する必要があります

$.ajax

ただし、最初は使用$.getしてみましたが、サーバーは多くの情報を返す必要がありましたが、ブラウザーが動かなくなり、問題なくナビゲートできました。

私はそれについて少しオンラインで検索しました、しかし私はまだ2つの違いについて100%確信していません。

$.get非同期の場合、ポイントは$.ajax何ですか?そうでない場合は、ナビゲーションの問題がないことをもう一度確認して$.get、使用する意味は何$.ajaxですか?

前もって感謝します

4

4 に答える 4

35

はい、$.get非同期です。ドキュメントから:

これは省略形のAjax関数であり、次のものと同等です。

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});

async...そしてそれはオプションを持っていないので、asyncデフォルトはtrue。(asyncこれは、jQueryの将来のバージョンで完全になくなることに注意してください。常に真になります。)

$.get非同期の場合、ポイントは$.ajax何ですか?

$.ajaxより多くのオプションを制御できます。$.get単なるショートカットです。

于 2012-12-02T17:35:04.533 に答える
3

$.getは単に次の略記です:

$.ajax({
  url: url,
  data: data,
  success: success,
  dataType: dataType
});
于 2012-12-02T17:35:24.490 に答える
0

jQuery ドキュメントに記載されているように、$.getはより低レベルの便利なラッパーです$.ajax

于 2012-12-02T17:36:41.680 に答える
0

GETメソッドを使用した$.ajax、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();
            }
于 2019-03-11T02:32:52.843 に答える