2012の14日目の記事として書きます。Calendar参加ということでご勘弁を。APIを使ったコード例は現在動作しなくなっていることにご注意。1.4以前の書き方まずは、少し古めのコード、昔のjQueryの本とかでよく見る書き方。jqXHRオブジェクトを返すようになります。それを利用した書き方はこう。alert('error!!!');});成功時の処理と失敗時の処理がajax()と並列に書くことができ、コード全体の見通しがぐっとよくなりましたね。always()を代わりに使ってね、ってことです。いうことで、success(),error()は使わない。alert('error!!!');});あるいはthen()を用いてこう書いてもいいでしょう。});then()の一個目の関数が成功時、二個目の関数が失敗時となります。上述した例の中でさりげなくDeferredな書き方を使っていましたが、発展編ということでこのDeferredな書き方をさらに突き詰めてみましょう。コールバック関数の管理、実行に改善をもたらします。具体的には、jQuery.Deferred()は複数のコールバックの実行を柔軟に行うことができ、これらのコールバック関数は、オリジナルのコールバックのディスパッチが発生しているかどうかにかかわらず実行されます。.always()なんかを使って柔軟にコールバックを管理、実行できるってことです(雑)。詳しくは下記を読むとよいでしょう。deferredをうまく使ったAjaxコードを見てみましょう。});});見てわかるとおり、Deferredを使うことでtwitterの検索を行うAjax部分と結果取得時のイベント処理部分が分離できます。これによりネストが深くならずに済み、コードの可読性が上がります。});と書くだけですから、ajax部分を気にすることなく結果取得後のイベント処理に意識を集中して書くことができます。用いた書き方$.when()を用いると複数のdeferredオブジェクトをまとめて管理できます。});});when内のDeferredオブジェクト全ての処理が完了すると、その後の処理が発火します。複数のAJAX結果をまとめて処理したいってときに使えます。Deferredオブジェクトを使うことでより楽しいAjaxライフが送れそうですね。本日紹介したコードはgistにも上げております。カナダ・バンクーバーでの修行時代を経て日本帰国。Railsと奮闘する日々。ブログでは技術ネタをよく書いています。