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 :

Substituer localStorage pour mémoriser des informations


Sujet :

JavaScript

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut Substituer localStorage pour mémoriser des informations
    Salut

    Avec le navigateur Ie et/ou Edge le localStorage n'est pas possible, par quoi peut on le substituer?

    J'ai besoin de mémoriser chez le client 2 informations distinctes sous cette forme

    Clef: nom, donnée: de 4 à 8 caractères maximum
    et
    Clef: QRZs, donnée: 10 fois 4 à 8 caractères séparés par une virgule donc 90 caractères maximum

    Exemple concret:
    nom ---> F1NHS
    QRZs -> F1NHS,F8CJB,F6DXV,F6DVG,F6EOM

    Je voudrais éviter le passage par cookies, si possible.

    Merci.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  2. #2
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Dans la conversation précédente, j'ai donné un lien qui donne des solutions de substitution au localstorage !

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  3. #3
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Citation Envoyé par danielhagnoul
    Dans la conversation précédente, j'ai donné un lien qui donne des solutions de substitution au localstorage !
    Citation Envoyé par ProgElecT
    Je voudrais éviter le passage par cookies, si possible.
    J'ai pas trouvé, pourtant je viens de ré-ouvrir pas mal de lien, parcouru plusieurs pages.
    Il est vraie que moi et la langue de Shakespeare .... c'est loinnnnnnnnnnnttttttt, mais de là a ne pas avoir trouvée cela , je laisse tombé une paire d'heure.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  4. #4
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    Sans localStorage on n’a pas énormément de choix, malheureusement. C’est soit les cookies, soit une solution plus exotique à base de plugin (je pense aux LSO de Flash notamment) ou de truc non standard spécial sauce Microsoft. Mes connaissances ne vont pas plus loin dans ce domaine
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Merci Watilin de ta réponse, tant-pis, je vais donc voir avec un passage par cookies.

    Après en avoir parlé avec les futurs utilisateurs (des radioamateurs, comme moi), connaissant pour la plus part l'informatique, ils savent que je ne déposerais pas des saletés sur leurs ordinateurs, de plus c'est chacun qui choisit ou non d'enregistrer les informations.
    J'utiliserai localstorage pour les navigateurs qui le supporte (c'est déjà en cours d'utilisation par quelques uns) et des cookies pour les autres.

    J'ai trouvé çà Cet algorithme est une imitation exacte de l’objet localStorage, mais utilise les cookies., reste à réussir à le faire fonctionner .
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Expert confirmé
    Avatar de Watilin
    Homme Profil pro
    En recherche d'emploi
    Inscrit en
    Juin 2010
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : En recherche d'emploi

    Informations forums :
    Inscription : Juin 2010
    Messages : 3 094
    Par défaut
    C’est marrant comme les gens attribuent plus de mauvaises intentions à un cookie qu’au localStorage… Probablement parce que c’est plus connu. En fait, n’importe quelle solution de stockage persistant permet de faire du pistage.

    Le problème que les cookies ont en plus, c’est qu’ils accompagnent les requêtes faites au serveur. Si la connexion n’est pas chiffrée, ils peuvent être vus par un tiers (au hasard, les boîtes noires de la Loi Renseignement). Donc ne mets rien de sensible dans tes cookies… Ou chiffre tes données avant de les stocker

    Edit : au fait : caniuse
    La FAQ JavaScript – Les cours JavaScript
    Touche F12 = la console → l’outil indispensable pour développer en JavaScript !

  7. #7
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Bonjour,
    Citation Envoyé par ProgElecT
    Avec le navigateur Ie et/ou Edge le localStorage n'est pas possible, par quoi peut on le substituer?
    ces 2 navigateurs connaissent le localStorage mais il faut tester avec un serveur local car il n'accepte pas le protocole file:.

  8. #8
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Salut

    Je reprend l'apprentissage du Cookie.
    J'ai fait cela pour essayer de maîtriser la chose
    Code HTML : 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
    <!DOCTYPE html>
    <html lang="fr"> <!-- EtudeCookies.html -->
    	<head>
    		<meta http-equiv="content-type" content="text/html;charset=utf-8"/>
    		<title>Etude Cookies</title>
    	</head>
    	<body>
    		<!-- source: https://ppk.developpez.com/tutoriels/javascript/gestion-cookies-javascript/#LIV -->
    		Ce souvenir de moi
    		<button id="btnperso" title="Se souvenir de moi ?" onclick="MemoUtilisateur()">Création cookie F1NHS</button>
    		<p id="inf1"></p>
    		Lire le cookie
    		<button id="btnautre" title="Recuperation du QRZ" onclick="RecupMonQRZ()">Lire le cookie de nom MonQRZ</button>
    		<p id="inf2"></p>
    		Supprimer le cookie
    		<button id="btnautre" title="Recuperation du QRZ" onclick="SuppMonQRZ()">Supprimer le cookie MonQRZ</button>
    		<p id="inf3"></p>
     
    		<script>
                            function createCookie(name,value,days) {
                                    if (days) {
                                            var date = new Date();
                                            date.setTime(date.getTime()+(days*24*60*60*1000));
                                            var expires = "; expires="+date.toGMTString();
                                            
                                    }else{
                                            var expires = "";
                                    }
                                    document.cookie = name+"="+value+expires+"; path=/";
                            }//---------------------------------------------------------
                            function readCookie(name) {
                                    var nameEQ = name + "=";
                                    var ca = document.cookie.split(';');
                                    for(var i=0;i < ca.length;i++) {;
                                            var c = ca[i];
                                            while (c.charAt(0)==' ') c = c.substring(1,c.length);
                                                    if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
                                    }
                                    return null;
                            }//---------------------------------------------------------
                            function eraseCookie(name) {
                                    createCookie(name,"",-1);
                            }//---------------------------------------------------------
                            function MemoUtilisateur() {
                                    createCookie('MonQRZ','F1NHS',365); // expire dans 1 an
                                    document.getElementById('inf1').textContent = 'Mémorisation de F1NHS, au prochain démarrage cet indicatif sera centré sur la page';
                            }//---------------------------------------------------------
                            function RecupMonQRZ() {
                                    var recupQRZ = readCookie('MonQRZ');
                                    if (recupQRZ) {
                                            document.getElementById('inf2').textContent = 'Cookies MonQRZ trouvée, sa valeur est ' + recupQRZ;
                                    }else{
                                            document.getElementById('inf2').textContent = 'Cookies MonQRZ non trouvée';
                                    }
                            }//---------------------------------------------------------
                            function SuppMonQRZ() {
                                    var KillCookies = eraseCookie('MonQRZ');
                            }//---------------------------------------------------------
                    </script>
     
    	</body>
    </html>
    Je précise que, dans un premier temps, j’expérimente sous Firefox.
    Au premier démmarage du code, en cliquant sur le bouton de création du cookie MonQRZ, je peu le lire en cliquant sur le bouton Lire le cookie de nom MonQRZ, c'est super !

    Je ferme la page, je la relance, , je clique sur le bouton Lire le cookie de nom MonQRZ, ben là, je ne retrouve pas le cookie.
    Si je regarde avec F12, onglet Stockage --> Cookies, je vois le cookie.

    Ou je me trompe dans le code, qu'est ce que je n'ai pas compris ?

    Merci de vos futurs informations.
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  9. #9
    Membre extrêmement actif Avatar de psychadelic
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 2 532
    Par défaut
    Oh, la, la...
    J'en ai écrit du code pour gérer des cookies, mais maintenant je ne vais même plus rechercher mes vielles lignes de code et je passe directement par la => https://github.com/search?l=JavaScri...e=Repositories

    Je prends en général le plus léger ou le plus populaire / simple à utiliser.

    celui-ci m'a l'air bien => https://github.com/js-cookie/js-cookie
    apparemment il permet de gérer des données en JSON et se débrouille avec les caractères spéciaux sans planter.

  10. #10
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 130
    Par défaut
    Re



    Ça fonctionne

    Merci a tous les intervenants.
    En résumer, pour Firefox, Chrome et Opera j'utilise LocalStorage , pour Ie et Edge, j'utilise des cookies avec la librairie js.cookie.js que m'a indiqué psychadelic.

    Pour cela, j'ai dût passer aussi les déclarations const et let en var car Ie et Edge n’appréciaient pas

    Le programme tourne maintenant sous Firefox 62.0.2 (64 bits), Chrome 69.0.3497.100, Opera 55.0, Ie 11.285 et Edge 17.17134 .
    Il me reste Safari qui ne prend pas en considération la partie CSS (sujet d'une prochaine discussion).

    En tous cas, gros merciiiiiiiiiiii à chacun d'avoir eu la patience de me guider.

    Motif de l'édit:
    Il me reste Safari qui ne prend pas en considération la partie CSS (sujet d'une prochaine discussion).
    J'ai la réponse
    Citation Envoyé par NoSmoking Voir le message
    Bonjour,
    aucune raison sauf si tu utilises Safari sous Window qui est obsolète !
    post https://www.developpez.net/forums/d1.../#post10239382
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 207
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 207
    Par défaut
    Ton script est fonctionnel et suffisant.
    Si tu veux tester correctement il te faut tester à partir d'un serveur local ou en ligne, cela semble être plutôt un problème de configuration du navigateur.

    Pour cela, j'ai dût passer aussi les déclarations const et let en var car Ie et Edge n’appréciaient pas
    Pas rencontré ce soucis sur IE11, pas moins, et Edge ?

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

Discussions similaires

  1. Script SNMP pour récupérer des information de la MIB
    Par patchiko dans le forum Développement
    Réponses: 4
    Dernier message: 23/05/2011, 18h31
  2. Réponses: 11
    Dernier message: 08/10/2007, 13h15
  3. Réponses: 6
    Dernier message: 31/08/2007, 11h13
  4. Réponses: 8
    Dernier message: 13/07/2006, 01h17

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