2012-10-06 100 views
16

Así que estoy trabajando en la herramienta que puede mostrar cuánto tiempo está tomando una solicitud para una página.¿Cómo obtengo el tiempo de respuesta de una llamada jQuery ajax?

Estoy haciendo esto usando jQuery Ajax (http://api.jquery.com/jQuery.ajax/) y quiero averiguar la mejor manera de obtener el tiempo de respuesta.

Encontré un hilo (http://forum.jquery.com/topic/jquery-get-time-of-ajax-post) que describe el uso de la "Fecha" en JavaScript, pero ¿es este método realmente confiable?

Un ejemplo de mi código podría ser esto más adelante

$.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 
}); 
+1

ver esta respuesta: http://stackoverflow.com/a/3700307/889678 – mgraph

Respuesta

32

El método más simple sería añadir var ajaxTime= new Date().getTime(); antes de la llamada Ajax y en el done obtener la hora actual para calcular la duración de la llamada Ajax llevó a hacer.

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 
}); 

O en caso de que desee saber cuánto tiempo dura esta toma en el lado del servidor. Haz lo mismo e imprime la hora en el valor de retorno desde some.php.

+12

Puede utilizar 'Date.now()' en lugar de la más larga 'new Date(). GetTime()'. No solo guarda caracteres sino que también guarda la creación de un objeto 'Fecha'. –

+1

@ DanielBöhmer Con respecto a 'Date.now()' - no está disponible en algunos navegadores más antiguos (por ejemplo, IE8), es posible que necesite un relleno múltiple, consulte [MDN] (https://developer.mozilla.org/es/docs/Web/JavaScript/Reference/Global_Objects/Date/now) –

+0

downvoting - no funcionará para solicitudes múltiples – Anonymous

Cuestiones relacionadas