jqueryのDeferredの自分用サンプル.
$.ajaxSetup({
dataType: "json",
type: "POST",
cache: false
});
var DeferSample = {
var self = this;
getData: function() {
var $defer = $.Deferred();
$.ajax({ url: "/api/books", data: {}, beforeSend: self.clear })
.done($defer.resolve)
.fail($defer.reject);
return $defer.promiss();
},
setData: function(data) {
var $elem = $("js-data-list");
$elem.hide();
(function() {
$.each(data, function(i, item) {
$("<li/>").text(_.str.springf("%s : %s", i, item))
.appendTo($elem);
});
}());
$elem.fadeIn("slow");
},
clear: function() {
$("js-data-list").empty();
},
showError: function(jqXhr, status, ex) {
alert(ex);
},
populate: function() {
getData().then(setData, showError);
}
};
$(function() {
DeferSample.populate();
});