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

JavaScript Discussion :

Actualisation d'une page controlée


Sujet :

JavaScript

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut Actualisation d'une page controlée
    Salut à tous,

    je travaille sur une application web à base de servlet, jsp qui tourne sous tomcat 5.

    Mon problème est plutôt simple : je lance l'éxecution d'une fonction grâce à un lien html :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <a href="#" onClick="loadInsert('22');window.location.reload();">
    Le loadInsert() appel une fonction java qui écrit dans ma base de données. L'actualisation permet d'afficher sur ma page jsp le changement. Le problème est que le window.location.reload() se lance quasi simultanément et donc mon changement n'est pas pris en compte. Je voudrais pouvoir lancer l'actualisation une fois le loadInsert() (et donc la fonction java) effectué (totalement effectués).

  2. #2
    Rédacteur

    Avatar de Bovino
    Homme Profil pro
    Développeur Web
    Inscrit en
    Juin 2008
    Messages
    23 647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2008
    Messages : 23 647
    Points : 91 220
    Points
    91 220
    Billets dans le blog
    20
    Par défaut
    J'imagine qu'un setTimeout sur le window.location devrait être suffisant, sinon, une requête Ajax qui te permet de lancer ton callback quand tu sais que tout s'est bien passé.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Le setTimeOut ne convient pas puisque je n'ai aucune idée du temps que prendra la fonction java appelé (le nombre de données a traité étant variable). Sinon pas d'Ajax pour mon application.

  4. #4
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    tu peux appeler une fonction javascript depuis ton code java ?

    sinon de souvenir y as pas un moyen de faire demarre la seconde fonction de ton onclick que si la premiere renvoie true ???

  5. #5
    Expert confirmé
    Avatar de le_chomeur
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2006
    Messages
    3 653
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2006
    Messages : 3 653
    Points : 4 835
    Points
    4 835
    Par défaut
    je pense effectivement que ce serait la solution la plus simple , une fois ton code java exécuté , il appellera la méthode javascript de la page , voici un exemple trouvé sur le net :

    http://www.rgagnon.com/javadetails/java-0172.html

  6. #6
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    oui je pense aussi que c'est plus logique de faire appel a la seconde fonction a la fin de la 1ere .....

    sinon pour la 2onde fonction qui s execute si la 1ere renvoie true c'est tres simplement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    onclick="if(premiere())seconde();"
    et tu retourne true ou false dans premiere()

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Dans mon cas ça se complique un peu. Mon lien vers la fonction javascript (la première) ouvre une popup (jsp). La fermeture de la popup doit provoquer l'actualisation de la page appelant la popup.

  8. #8
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    sur ta popup tu demande confirmation a l utilisateur : ok // annuler ?.???

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    En effet j'effectue un submit par l'intermédiaire d'un bouton

  10. #10
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    tu as essayé la méthode avec le if ???

  11. #11
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    La méthode avec le if ne fonctionne pas malheureusement

  12. #12
    Membre éprouvé Avatar de laurentibus
    Inscrit en
    Mars 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Mars 2008
    Messages : 875
    Points : 908
    Points
    908
    Par défaut
    fait voir le code de la page et celui de la popup

    et pour la 2eme solution :
    tu as regarder si tu pouvais appeler une fonction javascript depuis ta popup ???

  13. #13
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 51
    Points : 27
    Points
    27
    Par défaut
    Code de la page appelante de la popup :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    ...
    <a href="#" onClick="loadInsert('274666');" ><img src="/sup/jsp/images/comment_pair.jpg" title="Ajouter un commentaire sur le numéro de lot 0"></a>
    ...
    code de la popup :

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
     
    <html>
    <head>
    <title>Cegedim : Suivi de Production - Bases de Prod</title>
     
    <script language="JavaScript">
    <!--
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
    function MM_findObj(n, d) { //v3.0
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
    }
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    //-->
     
    </script>
     
    <link href="/sup/jsp/css/general.css" rel="stylesheet" type="text/css">
    <script language="JavaScript" src="/sup/jsp/js/util.js"></script>
     
    <script type="text/javascript"><!--
    function Form1_Validator(theForm)
    {
    with (theForm)
    {
    if (vempty(theForm.message.value, 'Ce champs doit être renseigné')==false) {message.focus(); return false;};
    }
    }
    //	  -->
    </script>
     
     
    </head>
    <body bgcolor="#FFFFFF" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" rightmargin="0">
     
    <form method="post" onsubmit="return Form1_Validator(this)" action="/sup/servlet/ClientServlet?action=ajoutComment" name="form1">	<table width="100%" border="0" cellspacing="0" cellpadding="3">
    	<tr> 
    	  <td align="center" class="CR" colspan="2">&nbsp;&nbsp;Ajout de commentaire&nbsp;&nbsp;</td>
    	</tr>
    <tr> 
      <td class="TDInformationSousTitre">Client : </td>
     <td><input type="text" name="nom" readonly value="RG-CORP"></td>
    </tr>
    <tr> 
      <td class="TDInformationSousTitre">Instance : </td>
      <td><input type="text" name="instance" readonly value="SIRWA054"></td>
    </tr>
    <tr> 
      <td class="TDInformationSousTitre">Lot : </td>
      <td></td>
    </tr>
    <tr> 
      <td valign="top" class="TDInformationSousTitre">Message : </td>
      <td> <textarea name="message" cols="80" rows="6"></textarea> 
      </td>
    </tr>
    	  <tr> 
    		<td align="center" colspan="2"><table border="0"><tr><td width="50" align="center"><a href="javascript:document.form1.submit();" onMouseOut="MM_swapImgRestore();window.status='';return(true);" onclick="return Form1_Validator(form1);" onMouseOver="MM_swapImage('valoff','','/sup/jsp/images/valide_on.gif',1);window.status='Valider';return(true);" class="admin">
    		  <img alt="Cliquez ici pour valider les champs" src="/sup/jsp/images/valide_off.gif" width="30" height="30" name="valoff" border="0"><br>Valider</a> 
    </td><td width="50" align="center"><a href="#" onMouseOut="MM_swapImgRestore();window.status='';return(true);"  onMouseOver="MM_swapImage('doneoff','','/sup/jsp/images/done_on.gif',1);window.status='Annuler et fermer la fenêtre';return(true);"  onClick="window.close();" class="admin">
    <img alt="Annuler et fermer la fenêtre" src="/sup/jsp/images/done_off.gif" width="30" height="30" name="doneoff" border="0"><br>Fermer</a>
    		</td></tr></table></td>
    	  </tr>
    	</table>
    <input type="hidden" name="numCrt" value="274666">
      </form>
     
     
    </body>
     
    </html>
    <!-- class org.apache.jsp.jsp.HTML.admin.AjoutCommentLot_jsp-->

    le code de la fonction javascript appelant la popup

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    function loadInsert(idCr){
     
    	pop=open('/sup/jsp/HTML/admin/AjoutCommentLot.jsp?idCr='+idCr+'&url='+document.location,'pop','scrollbars=no,resizable=no,width=800,height=300');
     
    }

Discussions similaires

  1. [AJAX] Actualisation d'une page par AJAX
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 30/06/2006, 13h07
  2. actualisation d une page
    Par getp2 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 08/06/2006, 18h37
  3. actualiser automatiquement une page web.
    Par MAJIK_ENIS dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 24/05/2006, 17h55
  4. actualisation d'une page automatiquement
    Par jack_1981 dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 22/05/2006, 13h28
  5. Site qui vérifie les actualisations d'une page web
    Par LFC dans le forum Autres langages pour le Web
    Réponses: 4
    Dernier message: 01/12/2005, 18h47

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