HTML Web Storage
Ранее canvas был пустым битмапом, который красил JavaScript. Этот урок уходит от рисования и знакомит с Web Storage: запоминание небольших строк ключ/значение в браузере через localStorage и sessionStorage. HTML по-прежнему загружает скрипт; скрипт вызывает API хранилища. Практика — сохранить/прочитать и срок жизни — не cookies, IndexedDB и не серверная БД.
Зачем web storage в курсе HTML
Новички хотят, чтобы тема или имя переживали обновление. Web Storage — первый обычный инструмент. После canvas разделение иное: HTML владеет оболочкой; JS — запоминанием строк для этого origin. Хватает setItem, getItem и local vs session.
Прямой ответ
1) localStorage.setItem сохраняет строку. 2) getItem читает её. 3) localStorage до очистки. 4) sessionStorage для вкладки/сессии. 5) Никакой HTML-тег не заменяет API. 6) Только лёгкие предпочтения; объектам нужен JSON, потому что значения — строки.
📊 localStorage vs sessionStorage
| Topic | localStorage | sessionStorage |
|---|---|---|
| Typical lifetime | Until cleared by user/site/code | Until the tab/session ends |
| Survives browser restart | Usually yes (same origin) | No |
| Shared across tabs (same origin) | Yes (same storage) | No (per tab/session) |
| API shape | setItem / getItem / removeItem | Same method names |
| Beginner fit | Theme, language preference | One-tab wizard draft, temp flags |
| This course depth | Intro save/read only | Intro save/read only |
Крошечное демо localStorage
Клик сохраняет приветствие и показывает в абзаце. После обновления getItem всё ещё находит значение для origin — идея «local».
<button id="save" type="button">Remember hi</button>
<p id="out"></p>
<script>
const out = document.getElementById("out");
const saved = localStorage.getItem("greet");
if (saved) {
out.textContent = "Saved: " + saved;
}
document.getElementById("save").onclick = function () {
localStorage.setItem("greet", "hi");
out.textContent = "Saved: " + localStorage.getItem("greet");
};
</script>
Читаем вызовы localStorage
- localStorage — объект браузера для скриптов страницы
- setItem кладёт строку под ключ
- getItem читает её (или null)
- Показ в p доказывает сохранность без рисования (в отличие от canvas)
- Ключи и значения — строки
- Очистка: removeItem или DevTools
sessionStorage для данных только вкладки
Те же имена методов, меньший срок жизни. Удобно для черновика одной вкладки, исчезающего при закрытии.
<label for="note">Tab-only note</label>
<input id="note" type="text" />
<button id="keep" type="button">Keep in this tab</button>
<p id="shown"></p>
<script>
const input = document.getElementById("note");
const shown = document.getElementById("shown");
const prior = sessionStorage.getItem("note");
if (prior) {
input.value = prior;
shown.textContent = "Restored in this tab: " + prior;
}
document.getElementById("keep").onclick = function () {
sessionStorage.setItem("note", input.value);
shown.textContent = "Kept: " + sessionStorage.getItem("note");
};
</script>
Читаем идею sessionStorage
- Тот же паттерн setItem/getItem
- Восстанавливается при обновлении в той же вкладке
- Другая вкладка обычно не видит те же данные
- Всё ещё строки; не для паролей
- Выбирайте local vs session по сроку жизни
- Дальше: geolocation
Что хранить
- Тема/язык: localStorage
- Флаг мастера только этой вкладки: sessionStorage
- Секреты: ни то ни другое
- Большие файлы: за пределами этого интро
- Серверные аккаунты: бэкенд
- Рисование пикселей: был canvas
Практика — запомнить предпочтение
- Вставьте демо localStorage и сохраните.
- Обновите; проверьте восстановление.
- Проверьте sessionStorage в той же вкладке.
- Закройте вкладку и откройте снова.
- Сохраните число — вернётся строкой.
- Предложение: canvas красит пиксели; Web Storage сохраняет строки.
- Впереди: geolocation.
Лёгкие ошибки
- Ждать тег storage
- Хранить пароли
- Забывать, что это строки (JSON для объектов)
- Путать с canvas или cookies
- Считать sessionStorage вечным
- Предполагать общий доступ с другими устройствами
- Считать интро полным курсом БД
Итог
- Web Storage — JS API: localStorage и sessionStorage
- setItem/getItem сохраняют строки для вашего origin
- local до очистки; session для вкладки/сессии
- Для лёгких настроек — не для секретов
- Canvas был пикселями; этот урок — запомненные строки
- Далее: HTML geolocation
🧠 Проверьте Свои Знания
Проверьте Свои Знания
Бросьте себе вызов с помощью этой интерактивной викторины и узнайте, насколько хорошо вы понимаете тему
📝 Инструкции
- Внимательно прочитайте каждый вопрос
- Выберите лучший ответ на каждый вопрос
- Вы можете пересдавать тест столько раз, сколько захотите
- Ваш прогресс будет показан вверху