http://sporto.github.io/blog/2012/12/09/callbacks-listeners-promises/
http://www.cnblogs.com/liuning8023/p/3220492.html
http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
http://blog.allenm.me/2012/01/jquery_deferred_promise_method/