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

GWT et Vaadin Java Discussion :

Attendre retour requête JSON


Sujet :

GWT et Vaadin Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut Attendre retour requête JSON
    Bonjour,
    Je souhaite charger les parametres de mon application via une communication JSON.

    Le probleme est que j'aimerais que le chargement de l'appli se bloque en attendant la reponse JSon. Pour pouvoir utiliser les parametres retournés.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    /**
             * This is the entry point method.
             */
    	public void onModuleLoad() {
     
    		loadParametres();
     
    		Window.alert(" ICI ");
     
    		for (int i = 0; i < params.getCategoriesOblig().length; i++) {
    		    if(params.getCategoriesOblig()[i] != null && params.getCategoriesOblig()[i].equals("true")){this.obligatoires.put(params.getCategoriesNames()[i], new Boolean(true));}
    		    else{this.obligatoires.put(params.getCategoriesNames()[i], new Boolean(false));}
    		}
    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
    private void loadParametres() {
    	    final RequestBuilder builder;
     
    	    builder= new RequestBuilder(RequestBuilder.GET, JSON_URL_PARAMS+"?typePack="+JSNIAccessor.getString("typePack", "toto"));
     
    	    try {
    	      Request request = builder.sendRequest(null, new RequestCallback() {
    	        public void onError(Request request, Throwable exception) {
    	          displayError("1 Couldn't retrieve JSON");
    	        }
     
    	        public void onResponseReceived(Request request, Response response) {
    	          if (200 == response.getStatusCode()) {
    	        	  params = new Parametres(asArrayOfParametersData(response.getText()).get(0));
    	          } else {
    	            displayError("2 Couldn't retrieve JSON (" + builder.getUrl() + " : " + response.getStatusCode()+ " : " + response.getStatusText()+ ")");
    	          }
    	        }
     
     
    	      });
    	    } catch (RequestException e) {
    	      displayError("3 Couldn't retrieve JSON");
    	    }
    	}

  2. #2
    Membre expérimenté
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Par défaut
    Pour moi ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    for (int i = 0; i < params.getCategoriesOblig().length; i++) {
    		    if(params.getCategoriesOblig()[i] != null && params.getCategoriesOblig()[i].equals("true")){this.obligatoires.put(params.getCategoriesNames()[i], new Boolean(true));}
    		    else{this.obligatoires.put(params.getCategoriesNames()[i], new Boolean(false));}
    		}
    doit faire partie d'une méthode que tu appelles dans ton événement onResponseReceived() après avoir défini tes paramètres...

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    oui, merci, je pensais bien à ça.
    Ce qui m’embêtais, c'est je suis obligé d'y mettre tout le code d'initialisation de l'appli.
    Je voulais savoir s'il n'y avais pas un autre moyen ?

  4. #4
    Membre expérimenté
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Par défaut
    Désolé, mais je ne comprends pas bien dans quel contexte on interrompt le chargement d'une application pour en initialiser les variables ? D'habitude on cherche plutôt l'inverse : charger ce qui est statique pendant que le serveur calcule et transmet ce qui est dynamique....

  5. #5
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    En fait ces parametres me permettent de savoir comment je dois construire mon interface, le nombre d'onglets, leurs nom ... la base de mon IHM.

    Mais je crois que je vais devoir choisir entre le onResponseReceveid et L'initialisation de variables JavaScripts par ma page PHP pour eviter le flux Json

  6. #6
    Membre expérimenté
    Avatar de karbos
    Inscrit en
    Novembre 2008
    Messages
    155
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 155
    Par défaut
    Citation Envoyé par mickaelguilbertxxx Voir le message
    En fait ces parametres me permettent de savoir comment je dois construire mon interface, le nombre d'onglets, leurs nom ... la base de mon IHM.
    Donc tu as besoin de calculer ces paramètres AVANT le chargement de ton interface

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Août 2011
    Messages : 22
    Par défaut
    J'ai donc choisi :
    Citation Envoyé par mickaelguilbertxxx Voir le message
    L'initialisation de variables JavaScripts par ma page PHP pour eviter le flux Json
    PHP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <?php include("params.php"); ?>
    <title><?php echo $titrePage[$_GET["typeP"]];?></title>
     
    <script> 
    var typePack = "<?php echo $_GET["typeP"];?>";
    var listeCategories = "<?php echo  substr($listeCategories[$_GET["typeP"]],1);?>";
    var listeCategoriesNames = "<?php echo $listeCategoriesNames[$_GET["typeP"]];?>";
    var listeCategoriesObligatoires = "<?php echo substr($listeCategoriesObligatoires[$_GET["typeP"]],1);?>";
    </script>
    GWT
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    private void loadParametres() {
    		params = new Parametres(JSNIAccessor.getString("listeCategories", ""),JSNIAccessor.getString("listeCategoriesNames", ""),JSNIAccessor.getString("listeCategoriesObligatoires", ""));
    	}
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public class JSNIAccessor {
     
    	 public static native String getString(String jsVar, String defaultValue)/*-{ 
           	var value = eval('$wnd.'+jsVar); 
           	if(value){ 
             	return value; 
           	} 
           	return defaultValue; 
         }-*/; 
    }
    Merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Requête JSON : capter l'erreur de retour
    Par Floweract dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2013, 10h43
  2. [AJAX] Test retour requête => bloquage
    Par troumad dans le forum AJAX
    Réponses: 17
    Dernier message: 09/09/2009, 18h54
  3. Remplir objet avec retour objet json
    Par steve3000 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 20/06/2009, 12h03
  4. Obtenir code retour requête UPDATE et DELETE
    Par SurfingJeff dans le forum SQL
    Réponses: 3
    Dernier message: 02/08/2006, 12h27
  5. [Réseau] Attendre une requête ??
    Par haffouff dans le forum Langage
    Réponses: 8
    Dernier message: 04/05/2006, 17h12

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