2012-01-10 6 views
3

Je veux faire quelque chose commeCombien de temps dure mon appel AJAX?

var date = new Date(); 
var pretime = date.getTime(); 

$.post( 
    "ajaxfile.php", 
    object, 
    function(data) { 
     var totalTime = date.getTime()-pretime; 
     $("#feed").append("Time: " + totalTime + "<br/>" + pretime + "<br/>" + date.getTime() + "<br/>"); 
    }); 
}); 

qui est, de mesurer combien de temps la AJAXcall dure avant que j'obtenir une réponse. Mais l'impression à partir de cette fonction de rappel est:

Time: 0 
1326184886814 
1326184886814 

Quelle est la solution?

Répondre

6

getTime() renvoie la même valeur car vous réutilisez le même objet Date(). Vous devez créer un nouvel objet Date:

var date = new Date(); 
var pretime = date.getTime(); 
     $.post("ajaxfile.php", object, function(data){ 
      var date2 = new Date(); 
      var totalTime = date2.getTime()-pretime; 
      $("#feed").append("Time: " + totalTime + "<br/>" + pretime + "<br/>" + date.getTime() + "<br/>"); 
     }); 
}); 
+1

Ou simplement utiliser 'Date.now()' pour obtenir l'horodatage. –

1

Je ne suis pas un expert Javascript, mais il me semble que vous créez un seul objet Date qui (s'il est similaire à l'objet Date de Java) stocke la date/heure au point où il a été créé, puis cette même date objet deux fois - à savoir comparer la date/heure de début à elle-même. Essayez de créer un deuxième objet Date à l'intérieur de la fonction de rappel AJAX pour capturer l'heure de fin.

0

Si vous êtes juste intéressé par le temps, sans l'enregistrer quelque part, vous pouvez utiliser la console développeur de Google Chrome. Appuyez sur F12, allez à l'onglet "Réseau", exécutez votre appel Ajax, et vous pouvez voir une chronologie du temps qu'il faut pour obtenir une réponse.

0

Si vous utilisez firebug pour déboguer votre code Javascript, jetez un oeil à la console. Il vous dira combien de milisecondes votre appel ajax prend :)

De plus, si vous n'utilisez pas firebug, qu'attendez-vous? Il est génial pour le débogage et vous fera gagner beaucoup de temps!

Questions connexes