Torna al blog

Strumenti JavaScript: localStorage e sessionStorage

Strumenti JavaScript: localStorage e sessionStorage

JavaScript (spesso abbreviato in JS) è una delle fondamenta della moderna infrastruttura web. È un linguaggio di programmazione leggero, interpretato e orientato agli oggetti che supporta funzioni di prima classe. JavaScript è noto soprattutto per la sua implementazione in pagine web dinamiche. A causa delle sue caratteristiche, tuttavia, JavaScript viene utilizzato anche in ambienti non-browser.

In questa guida, discuteremo in dettaglio due oggetti JavaScript: localStorage e sessionStorage.

Panoramica di localStorage e sessionStorage

Gli oggetti localStorage e sessionStorage sono offerti come parte delle API di web storage. È un ottimo strumento per l'archiviazione locale di coppie chiave-valore. L'uso di localStorage e sessionStorage è un'ottima alternativa ai cookie. Questo approccio offre alcuni vantaggi aggiuntivi:

  • I dati sono memorizzati localmente e non possono essere letti dal server. Questo elimina i problemi di sicurezza legati ai cookie.
  • Consente una maggiore capacità di archiviazione (fino a 10 MB per la maggior parte dei browser moderni).
  • Sintassi semplice e diretta.

Questi oggetti sono supportati su tutti i browser web moderni, quindi non ci saranno problemi di compatibilità con i browser. I cookie sono ancora utili in molte situazioni, ad esempio per l'autenticazione. Tuttavia, ci sono situazioni in cui localStorage e sessionStorage offrono soluzioni migliori.

Prerequisiti

Per eseguire i passaggi mostrati in questo tutorial, avrai bisogno dei seguenti componenti:

A scopo dimostrativo, abbiamo preso una pagina web di esempio allegata a uno script JS. Puoi scoprire di più su come aggiungere JavaScript a un file HTML qui:

tree_struct

VS 1

Per quanto riguarda l'editor di testo, utilizzeremo Visual Studio Code:

Web 1

Qual è la differenza tra localStorage e sessionStorage?

Sia localStorage e sessionStorage provengono dalla stessa API. Anche i loro comportamenti sono identici. L'unica differenza sta nel modo in cui ciascun oggetto consente la persistenza dei dati. Nel caso di sessionStorage, i dati persistono fino alla chiusura della finestra o della scheda. Con localStorage, i dati persistono finché la cache del browser non viene svuotata o l'applicazione web non li cancella.

In questo tutorial, ci concentreremo principalmente su localStorage. Tuttavia, la sintassi per sessionStorage è la stessa. Mostreremo come creare, leggere e aggiornare coppie chiave/valore utilizzando localStorage.

Passo 1 – Creazione di voci

Possiamo dichiarare una voce nell'oggetto localStorage utilizzando setItem(). Questo metodo accetta due argomenti: la chiave e il suo valore corrispondente. La struttura del metodo è la seguente:

Nel seguente esempio, abbiamo creato una variabile key. Utilizzando il metodo setItem(), abbiamo impostato una nuova chiave e impostato il suo valore su valore:

VS 2

Passo 2 – Lettura di voci

Ora, come leggiamo il valore memorizzato nella chiave? Per ottenere una chiave da localStorage, useremo il metodo getItem(). Accetta il nome della chiave e restituisce i valori memorizzati nella chiave. Useremo il metodo alert() per visualizzare il contenuto che recuperiamo:

VS 3

Successivamente, apri la pagina web in un browser web. Dovrebbe mostrare il valore memorizzato nella chiave:

Web 2

Step 3 – Updating Entries

Una volta impostato un valore, rimarrà tale a meno che non venga modificato. Se usiamo nuovamente il metodo setItem() sulla stessa chiave , sostituirà automaticamente il vecchio valore con quello nuovo.

Nel seguente esempio, la chiave viene prima inizializzata con il valore valore. Nella riga successiva, abbiamo chiamato setItem() ancora una volta e impostato il valore su nuovo valore:

VS 4

Vediamo cosa succede quando eseguiamo questo codice nel browser:

Web 3

Come possiamo vedere, il valore della chiave è impostato su nuovo valore.

Passo 4 – Eliminazione delle voci

Se ci sono più voci nel localStorage (e anche in sessionStorage ) che non sono più necessarie, si consiglia di cancellarle in seguito. Questo libera più spazio per un uso successivo. L'app diventa anche più efficiente in termini di memoria.

Per eliminare una voce da localStorage, c'è un metodo dedicato removeItem(). Prende la chiave come argomento e la rimuove dal localStorage pool di dati:

Implementiamolo nel nostro script:

VS 5

Quando viene eseguito, l'output dice null perché non esiste alcun valore per la chiave:

Web 4

Passo 5 – Cancellazione delle voci

Nell'esempio precedente, abbiamo rimosso solo una chiave. Tuttavia, localStorage consente di cancellare tutti gli elementi memorizzati in un unico passaggio. Per cancellare tutte le voci, localStorage offre il metodo clear(). Non richiede argomenti:

Mettiamo in azione il metodo:

VS 6

Proprio come prima, rimuove tutte le voci da localStorage, quindi quando si tenta di accedere al valore della chiave, restituisce null:

Web 5

Passo 6 – Lavorare con JSON

  • Memorizzazione di oggetti e array

Gli oggetti localStorage e sessionStorage possono memorizzare solo valori stringa. Tuttavia, ci saranno momenti in cui dovrai lavorare con oggetti o array. In tal caso, dobbiamo convertirli in una stringa.

JavaScript include la funzionalità JSON.stringify() che prenderà l'array/oggetto e lo convertirà in stringhe. Questo post fornisce una rapida panoramica del formato JSON. Per una guida più dettagliata, puoi leggere JSON in JavaScript.

In questo esempio, abbiamo creato un oggetto sampleObj con due campi name e location. Lo convertiremo in una stringa e lo memorizzeremo nella chiave:

VS 7

Qui, l'output sarà la stringa contenente i dati dell'oggetto:

Web 6

  • Lettura di oggetti e array

Durante la memorizzazione, abbiamo convertito oggetti e array in stringhe. Possiamo prendere questa stringa e riconvertirla nel suo formato originale. Per farlo, utilizzeremo il metodo JSON.parse(). Prende una stringa e la riconverte in formato JSON:

VS 8

Per quanto riguarda l'output, lo abbiamo riconvertito in una stringa e formattato per una migliore visualizzazione:

Web 7

Passo 7 – Verifica della presenza di un elemento in localStorage

In questa sezione, mostreremo un semplice test per determinare se localStorage e sessionStorage contenga o meno elementi. Usando una semplice if istruzione, possiamo verificare la lunghezza di localStorage o sessionStorage. Se ci sono elementi, la lunghezza sarà maggiore di 0.

Per prima cosa, implementa il seguente esempio:

VS 9

Qui, l'output sarà true perché esiste una chiave in localStorage:

Web 8

Passo 8 – Iterare sugli elementi

Gli oggetti localStorage e sessionStorage memorizzano le chiavi in una struttura simile a un array. Non supportano il metodo forEach , quindi dovremo seguire la tecnica classica di utilizzare un for ciclo per iterare su ogni elemento.

Nel seguente esempio, verificheremo se localStorage sia vuoto o meno. Se non è vuoto, itereremo su ogni elemento:

VS 10

L'output mostrerà tutti gli elementi uno per uno:

Web 9

Passo 9 – Verificare il supporto del browser

Possiamo verificare il supporto per localStorage (e sessionStorage) verificando se è disponibile sull'oggetto window. Una semplice if istruzione farà al caso nostro:

VS 11

Esegui il codice nel browser web:

Web 10

Considerazioni finali

Questa guida ha mostrato come utilizzare gli oggetti localStorage e sessionStorage in JavaScript per memorizzare coppie chiave/valore nel browser. Le sintassi sono molto più semplici da usare. Abbiamo mostrato come creare, rimuovere e aggiornare le coppie chiave/valore. Abbiamo anche affrontato la memorizzazione di oggetti e array convertendoli in stringhe (e viceversa).

Per approfondire ulteriormente la tua conoscenza di JavaScript, puoi consultare i seguenti tutorial dal nostro blog:

Buona programmazione!

author

Pranay Kapgate

Autore · CloudSigma

Preslav Dobrev è un designer creativo presso CloudSigma, con un focus su un'identità aziendale coerente attraverso l'uso di canali di marketing tradizionali e innovativi. È abile nel fondere la visione artistica con il marketing strategico per creare narrazioni di brand di grande impatto.

Commenti

Ancora nessun commento. Scrivi il primo.