I'm using jQuery's getJSONP and I want to log the duration of the call and the size of the response to be able to have some statistics about the usage of my application. This is a cross domain ajax call, so I need to use JSONP, but as the JSONP call is not done with an XMLHttpRequest object, the complete callback from jquery's ajax doesn`t pass the response content.
So my question is how to get the response size (content lenght) from a JSONP call.
$.ajaxSetup(
{
complete:function(x,e)
{
log(x.responseText.length, x.responseText);
}
}
here x is a XMLHttpRequest object for a JSON call , but for JSONP call is undefined.
Entrabiter
you can get the "Content-Length" of the response header:
var contentsize;
$.ajax('url', function(data, textstatus, request) {
contentsize = request.getResponseHeader("Content-Length") / 1024;
//do stuff with your data
});
$.ajax('url',function(data,textstatus,request)
{
var totalBytes = request.getResponseHeader('Content-length');
//if u are looking for downloaded bytes
var dlBytes =request.responseText.length;
});
来源:https://stackoverflow.com/questions/2645504/ajax-response-byte-size