Bonjour.
Ca peut se faire, mais ce sera un peu lourd à mettre en place et ça implique l'utilisation de Javascript.
En gros, l'idée est d'inclure dans chaque page les deux fonctions suivantes :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
<script language="javascript">
function setSendTime(){
var date = new Date();
var time = date.getTime();
document.getElementById("sendTime").value=time;
return true;
}
function calcRequestTime(){
var startTime = ${startTime};
var date = new Date();
var endTime = date.getTime();
var totalTime = endTime - startTime;
document.getElementById("totalTime").innerHTML=totalTime+" ms";
}
</script> |
La première fonction calcule l'instant courant (en ms) et le met dans un hidden dont l'identifiant est startTime : Cette fonction doit être systématiquement appelée à chaque requette.
Par exemple, dans un formulaire, tu l'appeler lors du submit par :
1 2 3 4 5 6
|
<form action="tonAction" onsubmit="return setSendTime();">
<input name="sendTime" type="hidden" id="sendTime" />
<input type="submit" name="Submit" value="Envoyer" />
</form> |
J'ai aussi ajouté le champ hidden sendTime.
La seconde fonction (calcRequestTime) fait le sale boulot : elle calcule le temps qu'a pris l'exécution de la requête. Pour pouvoir le faire, elle a besoin de deux choses :
- instant courant : pas de problème, du simple javascript (dans endTime)
- instant ou la requête a commencé : normalement, ce temps a été stocké dans un champ hidden et envoyé vers une sevlet ou une JSP qui génère la page courante ... donc, on peut y accéder par ${startTime}.
Voilà ! on a le temps d'exécution qui est la différence, et la fonction se contente de l'afficher dans un element dont l'id est "totalTime" par l'instruction :
document.getElementById("totalTime").innerHTML=totalTime+" ms";
tu peux mettre dans ta page un div par exemple :
<div id="totalTime"></div>
Voilou voila !
Bonne chance.
Partager