My Photo

« Deferredの復習 | Main | Deferredで無限ループしてポーリング »

April 09, 2014

jQueryのAjax関数はPromiseを実装したjqXHRを返す

以前の関連する記事:
jQueryで非同期な処理が終わるのを待つにはDeferredを使う
Deferredの復習

jqXHR

jQueryのAJAX関数(ajax(),get(),put())はjqXHRオブジェクトを返す。jqXHRはPromiseを実装している。
このjqXHRはAjax関数によるリクエストが成功するとresolvedになり、失敗するとrejectedになる。よって下記の2つのコードは同様な動作となる。

// success,errorプロパティを使用
$.ajax({
    url: "http://testhoge.jp/test.php",
    type: "POST",
    data: data,
    success: function(data, status, xhr) {
      console.log("success: status=" + status + "[" + xhr.status + "]");
    },
    error: function(xhr, status, thrown) {
      console.log("error: status=" + status + "[" + xhr.status + "]");
    },
    dataType: "text"
  });
// Deferredのdone(),fail()を使用
$.ajax({
    url: "http://testhoge/test.php",
    type: "POST",
    data: data,
    dataType: "text"
  })
.done(
  function(data, status, xhr) {
    console.log("done: status=" + status + "[" + xhr.status + "]");
  })
.fail(
  function(xhr, status, thrown) {
    console.log("fail: status=" + status + "[" + xhr.status + "]");
  });

参考ページ:
Deferredまとめ | Qrefy - jQuery日本語リファレンス
Ajaxまとめ | Qrefy - jQuery日本語リファレンス
jQuery モダンAjaxな書き方を目指して -Deferredを使ったAJAX- - Hack Your Design!
結局jQuery.Deferredの何が嬉しいのか分からない、という人向けの小話 - Qiita

« Deferredの復習 | Main | Deferredで無限ループしてポーリング »

JavaScript」カテゴリの記事

Comments

Post a comment

(Not displayed with comment.)

TrackBack

TrackBack URL for this entry:
http://app.cocolog-nifty.com/t/trackback/26461/59440730

Listed below are links to weblogs that reference jQueryのAjax関数はPromiseを実装したjqXHRを返す:

« Deferredの復習 | Main | Deferredで無限ループしてポーリング »

March 2017
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
無料ブログはココログ

日本blog村

  • にほんブログ村 IT技術ブログへ
  • にほんブログ村 アニメブログへ
  • にほんブログ村 サッカーブログ アルビレックス新潟へ

好きな音楽家

メモ

XI-Prof