Web Foundations

Web Storage

localStorage, sessionStorage, cookies, and client-side data persistence.

Advertisement

Web Storage

localStorage, sessionStorage, cookies, and client-side data persistence.

Overview

Web Storage APIs enable client-side data persistence.

Key Concepts

  • localStorage — Persistent key-value storage
  • sessionStorage — Tab-specific storage
  • Cookies — Small data with expiration
  • IndexedDB — Client-side database
  • Storage Limits — Browser storage quotas

Code Examples

<script>
// localStorage - persists across sessions
localStorage.setItem('theme', 'dark');
localStorage.getItem('theme'); // 'dark'
localStorage.removeItem('theme');
localStorage.clear();

// Store objects
const user = { name: 'John', email: 'john@example.com' };
localStorage.setItem('user', JSON.stringify(user));
const storedUser = JSON.parse(localStorage.getItem('user'));

// sessionStorage - clears when tab closes
sessionStorage.setItem('tempData', 'value');

// Cookies
document.cookie = 'username=John; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/';
document.cookie = 'theme=dark; max-age=86400; secure; SameSite=Strict';

// Read cookie
const cookies = document.cookie.split(';').reduce((acc, cookie) => {
  const [key, value] = cookie.trim().split('=');
  acc[key] = value;
  return acc;
}, {});

// IndexedDB for complex data
const request = indexedDB.open('MyDatabase', 1);

request.onupgradeneeded = (event) => {
  const db = event.target.result;
  const store = db.createObjectStore('users', { keyPath: 'id' });
  store.createIndex('email', 'email', { unique: true });
};

request.onsuccess = (event) => {
  const db = event.target.result;
  const tx = db.transaction('users', 'readwrite');
  const store = tx.objectStore('users');
  
  store.add({ id: 1, name: 'John', email: 'john@example.com' });
  
  const getRequest = store.get(1);
  getRequest.onsuccess = () => {
    console.log(getRequest.result);
  };
};
</script>

Practice

Build a theme switcher using localStorage and a shopping cart with sessionStorage.

Advertisement