![]() |
Oggi per qualsiasi sito web moderno gestire i dati lato client in modo efficiente è fondamentale. JavaScript mette a disposizione due strumenti potenti per questo scopo: LocalStorage e SessionStorage. Entrambi permettono di salvare informazioni nel browser dell’utente, ma con caratteristiche e finalità differenti.
📚 Che cos’è la Web Storage API?
La Web Storage API è una specifica del W3C che fornisce un meccanismo semplice per memorizzare coppie chiave/valore nel browser. Questa API comprende:
- 🗃️
localStorage→ memorizza i dati in modo permanente - 🧭
sessionStorage→ memorizza i dati temporaneamente, per una sola sessione
Entrambe sono più efficienti e semplici da usare rispetto ai cookie, e non vengono inviate automaticamente al server in ogni richiesta HTTP, migliorando così le performance.
🔍 Differenze principali tra LocalStorage e SessionStorage
| 🔧 Caratteristica | 🗃️ local |
🧭 session |
|---|---|---|
| ⏳ Persistenza | Permanente (finché non rimossa) | Temporanea (finché la scheda resta aperta) |
| 📁 Ambito | Tutte le schede dello stesso dominio | Solo nella scheda corrente |
| 📦 Spazio disponibile | Circa 5–10 MB (dipende dal browser) | Circa 5–10 MB (dipende dal browser) |
| 🧩 Condivisione | Tra finestre/schede dello stesso dominio | Non condivisa tra schede |
| 🛠️ Sintassi/API | Uguale per entrambi | Uguale per entrambi |
🧰 API disponibili
Entrambe le API usano gli stessi metodi:
- 📝
setItem(key, value)→ salva un dato - 🔎
getItem(key)→ legge un dato - ❌
removeItem(key)→ elimina un singolo dato - 🧹
clear()→ elimina tutti i dati
✅ Aggiungere dati
localStorage.setItem('username', 'Alice');
sessionStorage.setItem('sessionId', 'abc123');
🔍 Recuperare dati
const name = localStorage.getItem('username');
const id = sessionStorage.getItem('sessionId');
❌ Eliminare dati
localStorage.removeItem('username');
sessionStorage.removeItem('sessionId');
🧼 Pulire tutto
localStorage.clear();
sessionStorage.clear();
🧪 Esempi Pratici di Utilizzo
🗃️ LocalStorage: salvare preferenze utente
// Save user's theme preference
localStorage.setItem('theme', 'dark');
// Load preference on next visit
const savedTheme = localStorage.getItem('theme');
if (savedTheme) {
document.body.classList.add(savedTheme);
}
🧭 SessionStorage: stato temporaneo durante la sessione
// Save current step of a multi-step form
sessionStorage.setItem('formStep', '2');
// Restore step on reload (same tab only)
const step = sessionStorage.getItem('formStep');
if (step) {
goToFormStep(parseInt(step, 10));
}
📋 Quando usare LocalStorage o SessionStorage?
🗃️ Usa localStorage se:
- 💾 Vuoi persistenza a lungo termine, anche dopo il riavvio del browser
- 🎨 Salvi preferenze utente (es. tema, lingua)
- 🔄 Memorizzi dati da usare in più sessioni
- 🔌 Hai una web app offline che deve mantenere dati tra accessi
🧭 Usa sessionStorage se:
- 🔐 I dati sono sensibili e devono sparire a fine sessione
- 🧪 Hai un form multi-step da completare in una singola visita
- 🪟 Vuoi evitare interferenze tra più schede aperte
- 🔄 Stai gestendo dati temporanei come uno stato di scroll
⚠️ Limitazioni importanti
⛔ Non salvare dati sensibili
Tutti i dati salvati in LocalStorage o SessionStorage sono accessibili da JavaScript e non criptati. Non usarli per memorizzare password, token di autenticazione, dati personali o sensibili.
🔤 Solo stringhe
Entrambe le API salvano solo stringhe. Per salvare oggetti complessi, devi usare JSON.stringify() e poi JSON.parse() quando li recuperi.
const user = { name: 'Alice', age: 30 };
localStorage.setItem('user', JSON.stringify(user));
// Later...
const savedUser = JSON.parse(localStorage.getItem('user'));
console.log(savedUser.name); // Alice
📉 Limite di dimensione
La quantità di dati che puoi salvare è limitata (in genere tra 5MB e 10MB, a seconda del browser). Superare il limite genera un’eccezione.
🧠 Best Practices
- 🔐 Mai salvare dati sensibili. Usa i cookie sicuri e criptati o lo storage del server.
- 🧹 Pulisci i dati inutilizzati. Un LocalStorage sovraccarico può rallentare l'applicazione.
- 🧪 Usa try/catch. Puoi incorrere in errori se l’utente ha il browser in modalità privata o ha disabilitato lo storage.
-
try { localStorage.setItem('key', 'value'); } catch (e) { console.warn('Storage failed:', e); }
🧭 Conclusione
LocalStorage e SessionStorage sono strumenti semplici ma molto potenti per memorizzare dati client-side. Saperli usare nel modo giusto può migliorare notevolmente l’esperienza utente, ridurre le chiamate al server e velocizzare la tua applicazione.
💡 Regola d’oro: usa localStorage per dati persistenti e sessionStorage per dati temporanei entro la singola sessione o scheda del browser.
Follow me #techelopment
Official site: www.techelopment.it
facebook: Techelopment
instagram: @techelopment
X: techelopment
Bluesky: @techelopment
telegram: @techelopment_channel
whatsapp: Techelopment
youtube: @techelopment
