2017-10-03 9 views
0

の2つのコールに違いはありますか?これらの2つのAJAXリクエスト構文の違いは何ですか?

$.ajax({ 
     type: 'POST', 
     url: someApiUrl, 
     contentType: 'application/json; charset=utf-8', 
     data: someData 
    }).success(function (payload, status, xhr) { 
     //success code 
    }); 

$.ajax({ 
     type: 'POST', 
     url: someApiUrl, 
     contentType: 'application/json; charset=utf-8', 
     data: someData, 
     success: function (payload, status, xhr) { 
      //success code 
     } 
    }); 

その場合は、それぞれにいくつかの利点/欠点は何ですか?

この質問を語る良い方法がある場合は、ボーナスポイントが必要です。技術に名前が付いているのでしょうか?

+1

最終結果は同じです。どちらを使うかは好みの問題です。どちらにも技術的利点はありません。 – Igor

+0

彼らは機能的に同じだと私は信じています。 –

+0

@JamesThorpeええ、それは私にとって奇妙に見えます。 – j08691

答えて

4

書かれているとおり、それらは同じです。小さな変更で、第1のものは第2のものよりも優れている可能性があります。ウィットに:

var $eventualResult = $.ajax({ 
    type: 'POST', 
    url: someApiUrl, 
    contentType: 'application/json; charset=utf-8', 
    data: someData 
}); 

さて結果はである、あなたは、それを周りに渡すことができ、関数からそれを返し、異なるコンテキストでそれを使用する:

$eventualResult.then(function (result) { /* uses the result */ }); 

// meanwhile, elsewhere in the codebase... 

$eventualResult.then(function (result) { /* do something else */ }); 

にコールバック引数を使用して$.ajaxコンストラクタにはこのプロパティがありません。

+0

質問のタイトルを調整するためのアイデアですか?おそらく "成功コールバックとパラメータ"? –

+0

@RatherNotsayコールバック*はパラメータです。私たちが実際にやっていることは約束を使うことです。約束は独自の問題を抱えていますが、コールバックより優れています。詳細については、Googleの約束とコールバックをご覧ください。 –

+0

だから、それは約束かvsコールバックですか?ありがとう。 –

1

最初は、その後、AJAX呼び出しをインスタンス化し、第二は、AJAX呼び出しのコンストラクタのパラメータとして成功コールバックメソッドを示して

に成功イベントを追加し

第二は(私の意見では)優れていますその意図が開発者にはっきりと分かるので、

+0

ありがとう!私はまた、第2の選択肢の美学を好む。興味深いことに、おかげさまで、 –

関連する問題