Skip to content
Learn Netverks

Lesson

Step 54/58 93% through track

web-storage

Web storage

Last reviewed May 28, 2026 Content v20260528
Track mode
iframe_html
Means
HTML preview sandbox
Reading
~2 min
Level
advanced

This lesson

This lesson teaches Web storage—the ideas, syntax, and habits you need before moving on in HTML.

Without a solid grasp of Web storage, you will repeat mistakes in HTML exercises and on real pages or scripts.

You will apply Web storage in contexts like: Websites, hybrid apps, email templates, design systems, and CMS-driven content.

Read the lesson, edit HTML/CSS in the playground, press Run to preview, then answer the lesson MCQs. Also use the HTML reference desk when you need tag or attribute lookup.

When intermediate lessons feel comfortable and you are ready for production-style trade-offs.

localStorage persists until cleared; sessionStorage clears when the tab ends. Both store UTF-16 strings synchronously on the main thread.

Limits

  • Approximate 5 MB per origin depending on browser—handle quota errors.
  • Not structured—serialize JSON carefully.

Security

  • XSS attacks can exfiltrate storage—never store secrets.
  • Prefer HttpOnly cookies for session identifiers.

Alternatives

IndexedDB handles large structured datasets; Cache API pairs with service workers for offline shells.

Performance footnote

Synchronous JSON stringify/parse on huge objects blocks the main thread even if storage persists—still profile.

Typical persistence pattern

const KEY = 'draft:composer';
try {
  const raw = localStorage.getItem(KEY);
  textarea.value = raw ? JSON.parse(raw).body : '';
} catch (_) { /* corrupt data — reset */ }

function saveDraft() {
  localStorage.setItem(KEY, JSON.stringify({ body: textarea.value, ts: Date.now() }));
}

sessionStorage swaps persistence scope to the tab—good for ephemeral wizards.

Storage values are plain strings under the hood.

localStorage.setItem('draft', '{"body":"Hello"}')
localStorage.getItem('draft') // '{"body":"Hello"}'

Important interview questions and answers

  1. Q: What does progressive enhancement mean in API-driven pages?
    A: Core tasks should work with baseline HTML first, then richer APIs enhance experience when supported.
  2. Q: Why is feature detection better than browser sniffing?
    A: It checks actual capability, avoids brittle UA assumptions, and degrades gracefully.
  3. Q: What is the first accessibility check before shipping any page?
    A: Verify keyboard-only task completion with visible focus and meaningful accessible names.

Pitfall: Never store auth tokens in localStorage on public sites.

Interview tip Lesson completion confidence

Can you explain this lesson in 30 seconds without reading notes?

Not saved yet.

Playground

Runs in your browser in a sandboxed frame. Backend runners appear when this track’s profile allows them.

Check yourself

Multiple choice — immediate feedback.

Discussion

Past discussion is visible to everyone. Only logged-in users can post comments and replies.

Starter discussion topics

  • What confused you about this lesson?
  • How would you explain this to a teammate in 30 seconds?

Sign up or log in to post comments and sync lesson progress across devices.

No discussion yet. Be the first to ask a question.

Jump