2010-08-11 2 views

Répondre

4

Si vous voulez javascript pur, juste avant d'envoyer la note de la demande du temps à l'aide new Date().getTime();

Puis dans le rappel ajax, Notez à nouveau l'heure et soustrayez la première fois. Cela vous donnera la durée de l'appel.

Quelque chose comme ceci:

function aCallback() 
{ 
    window.time2 = new Date().getTime(); 
    window.alert(window.time2 - window.time1) 
} 
window.time1 = new Date().getTime(); 
$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: aCallback 
}); 
+0

parfait :) Temps pour tester ceci ... –

2
+0

Je pense qu'il veut le faire en javascript. Probablement besoin de jouer avec les en-têtes de réponse, pas sûr. –

+1

+1 Je me demande comment nous avons fait le web dev sans firebug et fiddler. Oh oui, je me souviens maintenant que c'était * beaucoup * plus fastidieux. –

+0

Outils de développement dans Chrome sont également très bons. – sje397

-1

Pourquoi réinventer la roue? Utilisez la console de firebug pour enregistrer l'heure. Faites quelque chose comme ceci:

function aCallback() 
{ 
    console.timeEnd("ajax call"); 
    window.alert(window.time2 - window.time1) 
} 
console.time("ajax call"); 
$.ajax({ 
    url: url, 
    dataType: 'json', 
    data: data, 
    success: aCallback 
}); 

Cela consignera le temps nécessaire pour que la réponse du serveur revienne à l'appel. Il enregistrera l'heure en millisecondes à la console firebug.

+0

Je ne peux pas utiliser la console parce que j'ai besoin de l'afficher au client (c'est-à-dire comme texte dans le code HTML). Les clients n'auront pas de firebug, etc. –

1

Pour répondre à votre deuxième question, vous pouvez lire l'en-tête Content-Length de la réponse XHR.

var req; 
req = $.ajax({ 
    type: "HEAD", 
    url: "/data", 
    success: function() { 
     alert("Size is " + req.getResponseHeader("Content-Length")); 
    } 
}); 
+0

AWESOME! Je voudrais pouvoir double-cocher ceci :( –

Questions connexes