Skip to content

Instantly share code, notes, and snippets.

@ajsb85
Forked from db/jquery.ajax.progress.js
Created April 8, 2014 20:30
Show Gist options
  • Save ajsb85/10186745 to your computer and use it in GitHub Desktop.
Save ajsb85/10186745 to your computer and use it in GitHub Desktop.
(function addXhrProgressEvent($) {
var originalXhr = $.ajaxSettings.xhr;
$.ajaxSetup({
progress: function() { console.log("standard progress callback"); },
xhr: function() {
var req = originalXhr(), that = this;
if (req) {
if (typeof req.addEventListener == "function") {
req.addEventListener("progress", function(evt) {
that.progress(evt);
},false);
}
}
return req;
}
});
})(jQuery);
// usage:
// note, if testing locally, size of file needs to be large enough
// to allow time for events to fire
$.ajax({
url: "./json.js",
type: "GET",
dataType: "json",
complete: function() { console.log("Completed."); },
progress: function(evt) {
if (evt.lengthComputable) {
console.log("Loaded " + parseInt( (evt.loaded / evt.total * 100), 10) + "%");
}
else {
console.log("Length not computable.");
}
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment