)ver1.5〜機能deferredオブジェクト(promiseオブジェクトとjqXHRオブジェクトを含む)に設定された処理が正常終了/異常終了にかかわらず「終了」したら実行する処理を設定します。引数のfunctionは複数設定でき、その場合はカンマで区切って設定します。複数のfunctionを含む配列を利用する事も可能です。解説jqXHRオブジェクトに利用する(成功編)通信関連のメソッドが返すjqXHRオブジェクトにはpromiseオブジェクトが含まれるので、jqXHRオブジェクトに対してalwaysメソッドが利用できます。サンプル(always/01.html)を開いてbody内にdiv要素とbutton要素があることを確認して下さい。jQuery.getメソッドを利用してサーバ上にあるデータを読み込んでいます。jQuery.getメソッドの返値はjqXHRオブジェクトで、これを変数jqXHRに代入しておきます。3行目でjqXHRオブジェクトに対しalwaysメソッドを利用して、処理が終了した時の処理を設定しています。サンプルではdiv要素にステータスを表示するようにしています。ステータスはjQuery.getからfunctionの引数「myStatus」に渡されます。jQuery.getメソッドのページで確認してください。myStatus){$("div").html(myStatus);});});結果として、buttonをクリックするとデータの読込が成功してdiv要素に「success」と表示されます。サンプルalways/01.htmlでは分かりやすくjqXHRオブジェクトを変数jqXHRに代入してい利用しましたが、メソッドチェーンを利用してjQuery.getメソッドとalwaysメソッドを連結することができます。myStatus){$("div").html(myStatus);});jqXHRオブジェクトに利用する(失敗編)alwaysメソッドは失敗した時も実行されるので、失敗した時のサンプルも確認します。サンプル(always/02.html)を開いて、ほとんどalways/01b.htmlと同じ事を確認してください。jQuery.getメソッドで読む込むファイルが、存在しない「none.txt」に変更されているだけです。結果としてbuttonをクリックすると読込に失敗しますが、alwaysメソッドは失敗しても実行されるため,div要素にステータス「error」が表示されます。deferred.doneメソッドで設定します。deferred.failメソッドで設定します。deferred.progressメソッドで設定します。メモ実際の使いどころ通信の処理では正常終了/異常終了にかかわらず実行する処理というのは、少なからず必要になってきます。そのような処理を効率よく記述するためにalwaysメソッドが用意されたのでしょう。サンプル(always/test01.html)を開いてbody内にbutton要素とdiv要素があることを確認してください。hideメソッドで表示しないようにしてあります。jQuery.getメソッドを利用して外部データを読み込むようにしてあります。メソッドチェーンで連結したdoneメソッド(正常終了した時の処理)、failメソッド(異常終了した時の処理)、alwaysメソッド(正常/異常にかかわらず終わった時の処理)を設定しています。(){$("div").slideDown();});大抵の通信処理は、正常終了/異常終了にかかわらず実行したい処理があるものです。slideDownメソッドで表示する処理です。このサンプルで、もしalwaysメソッドを利用しなかったらどうなるかを確認しましょう。サンプル(always/test01b.html)を開いて、buttonをクリックした時の処理が以下のように変更されているのを確認してください。$.get("../data/none.txt").done(function(){$("div").text("DONE!");$("div").slideDown();}).fail(function(){$("div").text("FAIL!");$("div").slideDown();});もしalwaysメソッドを利用しなかったら、上記のようにdiv要素を表示する処理(3,6行目)を2ヶ所に記述しなくてはならず、修正の際にも2ヶ所修正しなければなりません。これでは修正し忘れなどの危険もあり、プログラム的によくありません。alwaysメソッドを利用して処理をまとめるのです。この例からも、alwaysメソッドの有用性が理解できるのではないでしょうか?正常終了/異常終了にかかわらず終了したら実行したい処理はalwaysメソッドを利用して、まとめて設定するようにしましょう。