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

AJAX Discussion :

[AJAX] localStorage avec requête AJAX


Sujet :

AJAX

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 83
    Points
    83
    Par défaut [AJAX] localStorage avec requête AJAX
    Bonjour,

    je travaille actuellement sur une application mobile, sur laquelle j'affiche des news récupérées par un webservice. Le tout tourne dans une jsp.

    le mécanisme est :
    - Je récupère un premier flux qui me retourne quasiment toutes mes infos, je les stocke dans un objet
    - Je fait une requête AJAX pour récupérer une autre info, que je rajoute dans mon objet
    - Je stocke cet objet dans le LocalStorage.

    Et je le fait sur 15 news dans un foreach.

    Le problème c'est que tout cela ne marche pas.

    J'ai essayé de récupérer l'info de l'AJAX dans une variable globale, et l'ajouter à mon objet, mais cette variable est vide au sorti de la requete AJAX.
    j'ai essayé de tout faire dans ma requete AJAX, mais j'ai l'impression que cela vide mon LocalStorage à chaque sortie.

    Voilà mon code (basé sur la 2e solution) :
    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
     
     
    <script type="text/javascript">
     
    	function storeMyObject(maReponse)
    	{
     
    	        var monInfo = new Object();
    		monInfo.id = "${resumeInfo.id}";
    		monInfo.description = maReponse;
    		monInfo.titre = "${resumeInfo.titre}";
    		monInfo.resume = "${resumeInfo.resume}";
    		monInfo.image = "${resumeInfo.urlImage}";
     
    		localStorage.setItem("${resumeInfo.id}", JSON.stringify(monInfo));
     
    	}
     
     
    	var monId = "${resumeInfo.id}";
     
     
     
    	new Ajax.Request('laUneActuDetailOffline.do?idInfo='+monId,
    	{
    		method:'get',
    		onSuccess: function(transport){
    		var response = transport.responseText;
    		storeMyObject(response);
     
     
    		},
    		onFailure: function(){ 
     
    		// gestion du failure	
    	}
    	});
    </script>
    J'ai essayé de créer une méthode afin de passer ma variable en paramètre mais ça ne passe pas non plus. Pourtant, quand j'alert mon response, il est bien rempli. Et les autres variables ne posent aucun problème, c'est vraiment le response.

    Si vous avez une idée, elle serait la bienvenue

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Avril 2007
    Messages : 65
    Points : 83
    Points
    83
    Par défaut
    Ne cherchez plus, j'ai trouvé la réponse. Enfin, là ça marche quoi ^^

    J'ai juste externalisé les méthodes onSuccess et onFailure :

    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
     
    new Ajax.Request('laUneActuDetailOffline.do?idInfo='+monId,
    {
    	method:'get',
    	onSuccess: storeMyObject,
    	onFailure: failureStore 
    	});
     
    	function storeMyObject(transport)
    	{
    		var response = transport.responseText;
    		var monInfo = new Object();
    		monInfo.id = "${resumeInfo.id}";
    		monInfo.description = response;
    		monInfo.titre = "${resumeInfo.titre}";
    		monInfo.resume = "${resumeInfo.resume}";
    		monInfo.image = "${resumeInfo.urlImage}";
     
    		localStorage.setItem("${resumeInfo.id}", JSON.stringify(monInfo));
    		alert("ajout !!!" + "${resumeInfo.id}" + " " + monInfo.resume + localStorage.length);
    	}
     
    	function failureStore()
    	{
    	      // Gestion du failure
            }
    J'ai bien mes 15 news de stockées dans le localStorage.

    Si ça peut aider d'autres personnes

    Du coup, le poste est résolu

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

Discussions similaires

  1. Ancrage d'une page avec requête ajax
    Par Amnael dans le forum AJAX
    Réponses: 1
    Dernier message: 24/05/2017, 15h13
  2. [Google Maps] Graphique Highcharts dans une InfoWindow avec requête Ajax
    Par Pouyo dans le forum APIs Google
    Réponses: 3
    Dernier message: 29/04/2014, 19h39
  3. Réponses: 15
    Dernier message: 29/09/2013, 11h47
  4. [AJAX] Rafraîchir DIV avec requête Ajax
    Par Maxime3012 dans le forum AJAX
    Réponses: 7
    Dernier message: 24/11/2012, 20h08
  5. [AJAX] Requête AJAX plante avec IE8 mais pas avec FF
    Par MickSou dans le forum jQuery
    Réponses: 19
    Dernier message: 07/09/2012, 09h25

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