IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

temps total d'éxecution d'une requete


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Novembre 2006
    Messages : 12
    Par défaut temps total d'éxecution d'une requete
    bonjour
    je programme une application en trois niveaux.
    j'utilise des servlets.
    j'ai réussi à faire une classe (classe filter) qui me permet de caculer le temps d'éxecution d'une servlet.
    Cependant,cette classe , comme je pense, ne calcule pas le temps total depuis que je génere ma requete dans le poste client jusqu'a ce que j'obtient la page html, qui corresponde à cette requete, dans ce meme poste .

    Donc, y-a-il un moyen, dans l'html par exemple, qui permet d'obtenir la date à l'instant où la requete est géneré.Puis cette date est renvoyée dans la requete.Et aprés le chargement de la page html(c-à-d de la réponse),qui corresponde à cette requete, y-a-il un autre moyen(dans l'html par exemple) qui permet d'obtenir la date à l'instant où la page html de la réponse est arrivée.
    comme ça j'aurais les deux dates necessaires pour calculer le temps total depuis que la requete est génerée dans le poste client jusqu'a l'arrivée de la réponse dans ce meme poste.

    pardon: je sais que la question est longue mais je suis obligé d'expliquer


    merci

  2. #2
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("totalTime").innerHTML=totalTime+" ms";
    tu peux mettre dans ta page un div par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <div id="totalTime"></div>
    Voilou voila !
    Bonne chance.

  3. #3
    Membre chevronné


    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    7 855
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 7 855
    Par défaut
    Et si tu veux avoir le temps précis après rendu complet de la page, appelle la méthode js sur le onload de ton body :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <body onload="calcRequestTime();">

  4. #4
    Expert confirmé
    Avatar de djo.mos
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    4 666
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 4 666
    Par défaut
    Voilà ! Absolument ... j'avais oublié de parler de ça ...
    J'explique encore un petit peu pour bilel : l'évènement onload du body est appelé quand la page est complètement chargée dans le naviguateur : c'est donc parfait pour calculer le temps total de la requête.

Discussions similaires

  1. Erreur de type a l'éxecution d'une requete sql parametrée
    Par tipa42 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 31/10/2010, 09h49
  2. Temps d'éxecution d'une requete
    Par ddove53 dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 26/02/2010, 15h35
  3. Temps d'execution long d'une requete et double clic
    Par wariom dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 08/07/2008, 16h17
  4. Problème d'éxecution d'une requete
    Par TheKratos dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 24/08/2006, 21h39
  5. Total et s/total de colonne dans une requete
    Par Luc01 dans le forum Access
    Réponses: 9
    Dernier message: 02/01/2006, 11h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo