jQuery.Deferredその1 JSDeferredとの基本的な違い 基本的にDeferredはsuccessかfailedの2択です。Ajaxは成功するか失敗するかだし、アニメーションも成功するか失敗するかです。一度成功か失敗かが確定するとそのDeferredは死体となり、再度resolve/rejectを呼んでも反応しません。ただの屍です。 大抵の場合はこの2択で充分ですが、例えば生のXHRでは通信の進捗によってreadyStateが0(UNSENT), 1(OPENED), 2(HEADERS_RECEIVED), 3(LOADING), 4(DONE)と5段階に分かれています。次の状態へ進んだときなどに毎回onreadystatechangeコールバックが呼ばれ、その中で進捗に応じた処理(if(xhr.readyState == 4){ doneAjax_thenCallba