Web storage

Frontend SELF IT
Livello 45 , Lezione 3
Disponibile

4.1 localStorage e sessionStorage

Web storage consente alle web app di salvare dati nel browser dell'utente. È utile per memorizzare informazioni che devono persistere tra visite o navigare tra le pagine. In HTML5 sono stati introdotti due tipi principali di web storage: localStorage e sessionStorage.

Cos'è localStorage?

localStorage è un archivio di dati che persiste nel browser dell'utente per un tempo indefinito. I dati in localStorage restano disponibili anche dopo la chiusura del browser e il riavvio del computer. È utile per memorizzare informazioni che devono persistere tra le sessioni, come impostazioni utente o dati del carrello.

Cos'è sessionStorage?

sessionStorage è un archivio di dati che persiste nel browser dell'utente solo per una sessione. I dati in sessionStorage sono disponibili solo finché la scheda o la finestra del browser è aperta. È utile per memorizzare dati che servono solo durante una sessione, come dati temporanei dei moduli o stati dell'applicazione.

Metodi e proprietà principali

Metodi e proprietà di localStorage e sessionStorage

Entrambi i tipi di web storage hanno la stessa API, che include metodi e proprietà per lavorare con i dati:

  1. setItem(key, value): salva un valore con una chiave specificata.
  2. getItem(key): restituisce il valore memorizzato sotto la chiave specificata.
  3. removeItem(key): elimina il valore con la chiave specificata.
  4. clear(): pulisce tutti i dati nell'archivio.
  5. key(index): restituisce la chiave in base all'indice.
  6. length: restituisce il numero di coppie chiave-valore nell'archivio.

4.2 Esempi di utilizzo

Esempio di utilizzo di localStorage:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>localStorage Example</title>
        </head>
        <body>
          <h1>localStorage Example</h1>
          <input type="text" id="username" placeholder="Enter your username">
          <button id="saveButton">Save</button>
          <button id="loadButton">Load</button>

          <script>
            const saveButton = document.getElementById('saveButton');
            const loadButton = document.getElementById('loadButton');
            const usernameInput = document.getElementById('username');

            // Salvataggio del valore in localStorage
            saveButton.addEventListener('click', function() {
              const username = usernameInput.value;
              localStorage.setItem('username', username);
              alert('Username salvato!');
            });

            // Caricamento del valore da localStorage
            loadButton.addEventListener('click', function() {
              const savedUsername = localStorage.getItem('username');
              if (savedUsername) {
                usernameInput.value = savedUsername;
                alert('Username caricato!\n' + `${savedUsername}`);
              } else {
                alert('Nessun username trovato.');
              }
            });
          </script>
        </body>
      </html>
    
  

Esempio di utilizzo di sessionStorage:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>sessionStorage Example</title>
        </head>
        <body>
          <h1>sessionStorage Example</h1>
          <input type="text" id="sessionData" placeholder="Enter some data">
          <button id="saveSessionButton">Save</button>
          <button id="loadSessionButton">Load</button>

          <script>
            const saveSessionButton = document.getElementById('saveSessionButton');
            const loadSessionButton = document.getElementById('loadSessionButton');
            const sessionDataInput = document.getElementById('sessionData');

            // Salvataggio del valore in sessionStorage
            saveSessionButton.addEventListener('click', function() {
              const data = sessionDataInput.value;
              sessionStorage.setItem('data', data);
              alert('Dati salvati nella sessione!');
            });

            // Caricamento del valore da sessionStorage
            loadSessionButton.addEventListener('click', function() {
              const savedData = sessionStorage.getItem('data');
              if (savedData) {
                sessionDataInput.value = savedData;
                alert('Dati caricati dalla sessione!\n' + `${savedData}`);
              } else {
                alert('Nessun dato trovato nella sessione.');
              }
            });
          </script>
        </body>
      </html>
    
  

4.3 Confronto tra localStorage e sessionStorage

Differenze tra localStorage e sessionStorage

  1. Durata di memorizzazione:
    • localStorage salva i dati per un tempo indefinito, finché l'utente o uno script non li elimina esplicitamente.
    • sessionStorage salva i dati solo per il tempo della sessione corrente (scheda o finestra del browser).
  2. Ambito di visibilità:
    • I dati in localStorage sono accessibili in tutte le schede e finestre dello stesso dominio.
    • I dati in sessionStorage sono accessibili solo nella scheda o nella finestra corrente.
  3. Dimensione dell'archivio:
    • Generalmente localStorage e sessionStorage hanno un limite di 5-10 MB per dominio, a seconda del browser.

Esempio di confronto tra localStorage e sessionStorage:

HTML
    
      <!DOCTYPE html>
      <html>
        <head>
          <title>Comparison Example</title>
        </head>
        <body>
          <script>
            // Utilizzo di localStorage
            localStorage.setItem('persistentData', 'Questo dato persiste tra le sessioni');
            console.log(localStorage.getItem('persistentData')); // "Questo dato persiste tra le sessioni"

            // Utilizzo di sessionStorage
            sessionStorage.setItem('temporaryData', 'Questo dato persiste solo durante la sessione');
            console.log(sessionStorage.getItem('temporaryData')); // "Questo dato persiste solo durante la sessione"
          </script>
        </body>
      </html>
    
  

4.4 Ambiti di applicazione

Quando utilizzare localStorage:

  • Memorizzare dati che devono persistere tra le sessioni, come impostazioni o preferenze utente
  • Memorizzare dati che devono essere accessibili in tutte le schede e finestre di un dominio
  • Memorizzare dati che raramente cambiano

Quando utilizzare sessionStorage:

  • Memorizzare dati temporanei che servono solo durante la sessione corrente
  • Memorizzare dati specifici per la scheda o finestra del browser corrente
  • Memorizzare dati che devono essere eliminati alla chiusura della scheda o finestra

Sicurezza e privacy

Quando si utilizzano web storage, è importante considerare la sicurezza e la privacy:

  1. Crittografia: i dati nei web storage non sono crittografati per impostazione predefinita. Se è necessario archiviare informazioni riservate, è consigliabile crittografare i dati prima di salvarli.
  2. Attacchi cross-domain: i web storage funzionano all'interno di un singolo dominio, impedendo l'accesso ai dati da altri domini. Tuttavia, è importante proteggersi dagli attacchi XSS (Cross-Site Scripting) affinché gli aggressori non possano accedere ai dati nello storage.
  3. Limitazione della quantità di dati: cerca di archiviare solo le informazioni necessarie e pulisci regolarmente i dati obsoleti per evitare il sovraccarico dello storage.
1
Опрос
Map, Set e iteratori,  45 уровень,  3 лекция
недоступен
Map, Set e iteratori
Map, Set e iteratori
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION