How do I get the response time from a jQuery ajax call?

38,420

The most simple method would be to add var ajaxTime= new Date().getTime(); before the Ajax call and in the done get the current time to calculate how long the Ajax call took to make.

var ajaxTime= new Date().getTime();
$.ajax({
    type: "POST",
    url: "some.php",
}).done(function () {
    var totalTime = new Date().getTime()-ajaxTime;
    // Here I want to get the how long it took to load some.php and use it further
});

Or in case of you want to know how long time this take on the server side. Do the same and print the time in the return value from some.php.

Share:
38,420
Dumpen
Author by

Dumpen

Updated on November 17, 2020

Comments

  • Dumpen
    Dumpen over 3 years

    So I am working on tool that can show long a request to a page is taking.

    I am doing this by using jQuery Ajax (http://api.jquery.com/jQuery.ajax/) and I want to figure out the best way to get the response time.

    I found a thread (http://forum.jquery.com/topic/jquery-get-time-of-ajax-post) which describes using the "Date" in JavaScript, but is this method really reliable?

    An example of my code could be this below

    $.ajax({
        type: "POST",
        url: "some.php",
    }).done(function () {
        // Here I want to get the how long it took to load some.php and use it further
    });
    
  • Daniel Böhmer
    Daniel Böhmer almost 11 years
    You can use Date.now() instead of the longer new Date().getTime(). It doesn't only save characters but also saves creation of a Date object.
  • Adam Chwedyk
    Adam Chwedyk about 9 years
    @DanielBöhmer Regarding Date.now() - it's not available in some older browsers (e.g. IE8), you might need a polyfill, see MDN
  • Anonymous
    Anonymous over 7 years
    downvoting - won't work for multiple requests