Problema LocalStorage

di il
7 risposte

Problema LocalStorage

Ciao. Sto rimettendo mano a tutto il codice fatto fino adesso e che in parte funzionava. Ma ho un atroce dubbio. Non riesco a capire come funziona il localstorage anche leggendo la documentazione dei DEVTool di chrome ( il browser che utilizzo). Ora di solito lancio l'applicazione con il server GO LIve (ho scaricato un'estensione di Visual studio code suggeritomi da Alka che non finirò mai di ringraziare nonostante l'abbia sfiancato!) e fin qui tutto bene. I dati vengono caricati nello storage. Ora se chiudo e riapro il browser dei dati non c'è nessuna traccia. Se lascio aperto il browser e spengo e riaccendo il server lanciando nuovamente l'applicazione i dati persistono. Ma allora qual'è la maniera corretta per vedere se i dati sono memorizzati? Ho provato a scrivere localStorage.setItem('guardie', ‘ciao’) passando  per prova dei parametri fuori da una funzione e i dati persistono anche se chiudo e riapro il browser, mentre se lo faccio all'interno di una funzione questo non succede anche quando invoco la funzione. Qual'è il comportamento corretto? Vorrei capire qual'è la procedura corretta altrimenti vado alla cieca nell'implementazione del codice futuro. Spero che qualche anima santa mi dia una mano.

7 Risposte

  • Re: Problema LocalStorage

    14/02/2023 - tonyven1 ha scritto:


    Ho provato a scrivere localStorage.setItem('guardie', ‘ciao’) passando  per prova dei parametri fuori da una funzione e i dati persistono anche se chiudo e riapro il browser, mentre se lo faccio all'interno di una funzione questo non succede anche quando invoco la funzione.

    Partiamo dal presupposto che il Local Storage funziona, giusto per sgombrare il campo da ipotesi di fallacia dello strumento.

    Se facendo la prova i dati persistono, mentre con la funzione ciò non avviene, le possibilità sono limitate:

    • la funzione non viene richiamata;
    • la funzione viene richiamata ma poi non viene fatta per qualche motivo la rilettura;
    • i dati sono salvati nel modo non corretto o non sono una stringa;
    • da qualche parte si va a salvare sulla stessa chiave un valore che sostituisce il precedente e lo annulla.

    Non chiedo di vedere il codice perché già so com'è.

    Mi astengo dal suggerire di “andare per step successivi”, ovvero partire da un array vuoto, poi inserire i dati di una guardia, poi implementare modifica, aggiornamento ed eliminazione, poi aggiungere il salvataggio e così via, senza confondere la logica con istruzioni che agiscono sulla pagina (di cui il codice era pieno) e facendo correttamente il debugging (ovvero mettendo dei breakpoint e verificando il valore delle variabili sui passaggi cruciali), poiché ho visto che non serve a nulla (non viene mai fatto).

    Ciao!

  • Re: Problema LocalStorage

    CIao.Qui il discorso si complica parecchio. Non so come testare i vari punti che hai elencato. In particolare non so se utilizzare la console di devtool per debuggare o inserire console.log nello script. Capisco che qui si apre un mondo completamente nuovo per me. Ho fatto una copia dei file che sto utilizzando per fare i test ma non so come procedere. Ad ogni modo è possibile inserire più file su codepen così  magari rendo più chiaro il lavoro che ho svolto?

    Oppure come si procede per debuggare uno script?

    Ad ogni modo la pagina su cui sto lavorando è questa con relativo script:

    https://codepen.io/tonyven/pen/qBMEmKe

    Mi piacerebbe proprio imparare a debuggare uno script.

  • Re: Problema LocalStorage

    Ciao

    Ho provato a caricare il link, però nel JS vedo solo la parte di salvataggio dati nel local storage, non la parte di lettura.

    Manca qualcosa nello script oppure ho problemi io a caricare?

    Detto questo, a me si verificava qualcosa di simile anni fa, poi ho scoperto che il problema era legato al fatto che avevo impostato il browser per ripulire tutti i dati alla chiusura.

    E' una cavolata che solo a me può capitare, però si sa mai

  • Re: Problema LocalStorage

    15/02/2023 - tonyven1 ha scritto:


    Non so come testare i vari punti che hai elencato. In particolare non so se utilizzare la console di devtool per debuggare o inserire console.log nello script.

    Basta documentarsi: vedi questo articolo.

    15/02/2023 - PiGi78 ha scritto:


    ho scoperto che il problema era legato al fatto che avevo impostato il browser per ripulire tutti i dati alla chiusura.

    Non escluderei che questo possa essere uno dei problemi.

  • Re: Problema LocalStorage

    Ciao. Ho incominciato a vedere il debug che trovo molto interessante. Mi ci vorrà un pò per digerirlo visto il poco tempo che ho. Comunque siccome ho notato che l'istruzione localStorage.setItem() messa fuori dalla funzione che avevo scritto funziona mentre all'interno della funzione se chiudo e riapro il browser i dati si perdono ,ho provato a cambiare il codice rendendo l'array dbGuardia accessibile esternamente. 

    let dbGuardia=[];
    let guardia={};
    
    
    let z=insGuardia();
      localStorage.setItem('guardie', JSON.stringify(z));
    
    
    //
    function insGuardia(){
        let nome=document.getElementById("nom").value;
        let cognome =document.getElementById("cogn").value ;
        let indi =document.getElementById("ind").value;
        let telefono =document.getElementById("tel") .value;
           guardia = { 'nome': nome, 'cognome': cognome, 'indirizzo': indi, 'telefono': telefono };
          dbGuardia.push(guardia);
          localStorage.setItem('guardie',JSON.stringify (dbGuardia));
          
      
      document.getElementById('vis1').innerHTML = JSON.stringify(dbGuardia)+ "<br>";
    return dbGuardia;
      }

    Ovviamento questo che ho scritto non funziona, e non riesco a capire perchè.Non è cosi che si fà? Mi piacerebbe se lo provaste anche voi per vedere se è un problema di codice o di macchina.

  • Re: Problema LocalStorage

    Ciao dimenticavo di chiedere cosa intendevi per steep successivi. Ho fatto la stessa applicazione tempo fa usando node e funzionava tutto. Non ho usato però il localStorage. Forse intendevi questo? Ho fatto a passi successivi i vari movimenti e ho usato il dom per verificare. Infatti anche adesso utilizzo il dom per vedere i vari valori. Poi per vedere se lo storage cambiava utilizzo il devtooldi chrome. Tutto sbagliato?

  • Re: Problema LocalStorage

    16/02/2023 - tonyven1 ha scritto:


    Mi piacerebbe se lo provaste anche voi per vedere se è un problema di codice o di macchina.

    Vedo che siamo tornati indietro invece di andare avanti.

    Sulla forma (nome variabili, ecc.) mi sono già espresso nell'altra discussione, non ci torno sopra (tanto continuano a essere considerazioni ignorate).

    Non so poi cosa si debba provare: ci sono due salvataggi nel Local Storage ed entrambi funzionano, perché non dipendono da dove si trova la chiamata, se dentro o fuori da una funzione, quindi il problema può essere nella rilettura, che manca, o nella visibilità della variabile nella quale vengono caricati i dati dal Local Storage al successivo accesso, ma ragioniamo sempre su spezzoni di codice parziali, sempre scritti male, con variabili che entrano ed escono di continuo dalle funzioni, con un flusso del programma sconosciuto e con problematiche legate alla sequenza con cui le operazioni vengono eseguite che si possono determinare con il debug, che non vuoi fare.

    Per la seconda (e ultima) volta, mi arrendo nuovamente (anche perché il contrario non avrebbe comunque nessun beneficio, dato che i consigli vengono ignorati). Anzi, essendo che si continua a parlare sempre delle stesse cose, la situazione inizia a somigliare molto a una presa in giro, senz'altro comunque è una perdita di tempo.

Devi accedere o registrarti per scrivere nel forum
7 risposte