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 :

LocalStorage ne fonctionne pas


Sujet :

JavaScript

  1. #1
    Membre confirmé
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut LocalStorage ne fonctionne pas
    Voilà, je suis bon développeur php, mais j'ai certaines difficultés en JS. J'ai trouvé un code pour stocker des données en local.

    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
    <script type="text/javascript">
     	if(typeof localStorage != 'undefined'){
    		//récup de la valeur dans le web store
    		var nbvisites = localStorage.getItem('visites');
    		//vérification de la présence du compteur
    		if(nbvisites != null){
    			//si oui, on convertit en nom entier la chaine de texte qiu fut stockée
    			nbvisites = paseInt(nbvisite);
    		}
    		else{
    			nbvisites = 1;
    		}
    		//incrémentation 
    		nbvisites ++;
    		//Stockage à nouveau en attendant la prochaine visites
    		localStorage.setItem('visites', nbvisites);
    		//affiche dans la page
    		document.getElementById('visites').innerHTML = nbvisites;
    	}
    	else{
    		alert("localstorage n'est pas supporté");
    	}
    	alert("localstorage n'est pas supporté");
      </script>
    j'ai mis ça dans le body, mais rien ne fonctionne. Pourquoi ?

  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
    Billets dans le blog
    20
    Par défaut
    Peut-être à cause d'une erreur de syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbvisites = paseInt(nbvisite);
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  3. #3
    Membre confirmé
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbvisites = parseInt(nbvisite);
    corriger mais ça marche toujours pas

  4. #4
    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
    Billets dans le blog
    20
    Par défaut
    j'ai mis ça dans le body
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById('visites').innerHTML = nbvisites;
    L'élément 'visites' existe bien lorsque le code est exécuté ?
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  5. #5
    Membre confirmé
    Homme Profil pro
    Programmeur
    Inscrit en
    Mai 2012
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Programmeur

    Informations forums :
    Inscription : Mai 2012
    Messages : 55
    Par défaut
    L'élément 'visites' existe bien lorsque le code est exécuté ?
    Il sagit d'initialiser la variable ? si oui c'est fait, et, ça ne marche toujours pas.

  6. #6
    Expert confirmé
    Avatar de sekaijin
    Homme Profil pro
    Urbaniste
    Inscrit en
    Juillet 2004
    Messages
    4 205
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Urbaniste
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 4 205
    Par défaut
    je ne comprends pas nbvisite et nbvisites c'est quoi la différence et pourquoi il y en a deux et où sont-elle initialisées ?

    A+JYT

  7. #7
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut à tous, il y a un peu plus sort au niveau de ce que tu demande
    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
     
    <script>
    if(typeof(localStorage) == "undefined") {
      alert("Ce navigateur ne supporte pas Web Storage");
    } else {
      // Valeur par défaut si visites n'a pas encore été défini
      if(!localStorage.visites)  localStorage.setItem("visites","0");
      // Variable temporaire le temps d'un refresh...
      var nb = "";
     
     // Lecture
      // affectation de nb = visites convertit en nombre entier
      nb = parseInt(localStorage.getItem("visites"));
      // Incrémentation du compteur
      nb++;
      // Mémorisation de la nouvelle valeur incrémenté nb dans visites
      localStorage.setItem("visites",nb);
      // Affichage
      document.getElementById("visites").innerHTML = nb;
    }
    </script>
    Bonne chance A+

  8. #8
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
      // Valeur par défaut si visites n'a pas encore été défini
      if(!localStorage.visites)  localStorage.setItem("visites","0");
      // Variable temporaire le temps d'un refresh...
      var nb = "";
     
     // Lecture
      // affectation de nb = visites convertit en nombre entier
      nb = parseInt(localStorage.getItem("visites"));
      // Incrémentation du compteur
    Peut être remplacé par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nb = parseInt(localStorage.getItem("visites") || 0);
    Il me semble.

  9. #9
    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
    Billets dans le blog
    20
    Par défaut
    Dans tous les cas, invoquer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    document.getElementById("visites").innerHTML = nb;
    ne risque pas de fonctionner tant que l'élément dont l'id est 'visites' n'existe pas dans le DOM et au vu des explications et du code donné, il semble fort que ça soit le cas !
    Pas de question technique par MP !
    Tout le monde peut participer à developpez.com, vous avez une idée, contactez-moi !
    Mes formations video2brain : La formation complète sur JavaScriptJavaScript et le DOM par la pratiquePHP 5 et MySQL : les fondamentaux
    Mon livre sur jQuery
    Module Firefox / Chrome d'intégration de JSFiddle et CodePen sur le forum

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Salut à tous,
    Dans tous les cas, invoquer
    Code :
    Sélectionner tout - Visualiser dans une fenêtre à part

    document.getElementById("visites").innerHTML = nb;

    ne risque pas de fonctionner tant que l'élément dont l'id est 'visites' n'existe pas dans le DOM et au vu des explications et du code donné, il semble fort que ça soit le cas !
    Il le met à la fin de body
    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
     
    <html>
    <head>
    </head>
    <body>
    <div id="visites">0</div>
    <script>
    if(typeof(localStorage) == "undefined") {
      alert("Ce navigateur ne supporte pas Web Storage");
    } else {
      // Valeur par défaut si visites n'a pas encore été défini
      // merci à Willpower 
     var nb = parseInt(localStorage.getItem("visites") || 0);
      // Incrémentation du compteur
      nb++;
      // Mémorisation de la nouvelle valeur incrémenté nb dans visites
      localStorage.setItem("visites",nb);
      // Affichage
      document.getElementById("visites").innerHTML = nb;
    }
    </script>
    </body>
    </html>
    </body>
    ou si son SCRIPT et dans HEAD
    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
     
    <html>
    <head>
    <script>
    window.onload = function(){
    if(typeof(localStorage) == "undefined") {
      alert("Ce navigateur ne supporte pas Web Storage");
    } else {
      // Valeur par défaut si visites n'a pas encore été défini
      // merci à Willpower 
     var nb = parseInt(localStorage.getItem("visites") || 0);
      // Incrémentation du compteur
      nb++;
      // Mémorisation de la nouvelle valeur incrémenté nb dans visites
      localStorage.setItem("visites",nb);
      // Affichage
      document.getElementById("visites").innerHTML = nb;
    }
    };
    </script>
    </head>
    <body>
    <div id="visites">0</div>
    </body>
    </html>
    Sympa willpower, simple et sort.

    Bonne soirée

  11. #11
    Invité de passage
    Inscrit en
    Mai 2005
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 1
    Par défaut
    Suis-je le seul à penser qu'utiliser le localStorage (propre à l'utilisateur donc) est une idée absurde pour implémenter un compteur de visites ?

    Un compteur de visites et censé renvoyer le nombre de visites de tous les utilisateurs. Or, tel qu'il est implémenté, il renverra le nombre de visites de l'utilisateur et sera réinitialisé dès que l'utilisateur vide son cache.

  12. #12
    Membre Expert Avatar de Willpower
    Homme Profil pro
    sans emploi
    Inscrit en
    Décembre 2010
    Messages
    1 009
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : sans emploi

    Informations forums :
    Inscription : Décembre 2010
    Messages : 1 009
    Par défaut
    Citation Envoyé par headmax Voir le message
    Sympa willpower, simple et sort.
    En fait, y'a encore plus simple (et sort) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var nb = Number(localStorage.getItem("visites"));
    Car

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    parseInt(null) // NaN
    Number(null) // 0

  13. #13
    Membre Expert

    Homme Profil pro
    Ingénieur Hospitalier
    Inscrit en
    Juillet 2004
    Messages
    993
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Hospitalier
    Secteur : Santé

    Informations forums :
    Inscription : Juillet 2004
    Messages : 993
    Billets dans le blog
    1
    Par défaut
    Merci pour l'info willporwer

Discussions similaires

  1. Réponses: 6
    Dernier message: 27/01/2004, 11h14
  2. [FP]Writeln ne fonctionne pas !
    Par néo333 dans le forum Turbo Pascal
    Réponses: 4
    Dernier message: 01/11/2003, 23h47
  3. UNION qui ne fonctionne pas
    Par r-zo dans le forum Langage SQL
    Réponses: 7
    Dernier message: 21/07/2003, 10h04
  4. Un Hint sur un PopupMenu ne fonctionne pas !!??
    Par momox dans le forum C++Builder
    Réponses: 6
    Dernier message: 26/05/2003, 16h48
  5. ca ne fonctionne pas (generateur auto-incrémentant)
    Par tripper.dim dans le forum SQL
    Réponses: 7
    Dernier message: 26/11/2002, 00h10

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