2013年8月4日日曜日

$.ajaxの送信完了イベントの受け取り

$.ajaxにおいては、
  • 送信前 (beforeSend)
  • 送信後 (complete)
  • 送信成功 (success)
  • 送信失敗 (error)
のように、様々なイベントをキャッチすることが可能ですが、そのコールバック関数が取る引数について。

$.ajaxのイベントには、$.ajaxのパラメータに指定するローカルイベントハンドラと、$ajaxCompleteのように指定するグローバルイベントハンドラがあります。違いは以下のとおりです。

  • ローカルイベントハンドラ : 定義した$.ajaxのみ対象とするイベント
  • グローバルイベントハンドラ : すべての$.ajaxを対象とするイベント(ajaxCompleteなど)
それぞれ、ステータスや、XMLHttpRequestオブジェクトなどが格納されるのですが、順番が異なるため、同じように実装すると、期待していたように動かないといったことが起こります。
グローバルイベントハンドラは多々有りましたがローカルイベントハンドラの引数の情報が見当たらなかった(参考文献の$.ajaxは公式だと思います)ので作成しておきます。

例)complete / ajaxCompleteの場合:

ローカルイベントハンドラ
$.ajax ( 
  省略
  complete : function(XMLHttpRequest, status){ },
)

グローバルイベントハンドラ
ajaxComplete(status, XMLHttpRequest, setting)

settingは、$.ajaxの引数や$.ajaxSetupによって設定したオプションが格納されます。


参考

0 件のコメント:

コメントを投稿