НАЙКРАЩИЙ САЙТ ДЛЯ ВЕБ-РОЗРОБНИКІВ
HTML5. Уроки для початківців. W3Schools українською

En Es De Fr

HTML5 Веб-сховище


HTML веб-сховище; краще ніж cookies.


Що таке HTML веб-сховище?

За допомогою вебсховища вебпрограми можуть зберігати дані локально в браузері користувача.

До появлення специфікації HTML5, дані додатків повинні були зберігатися в куках (cookies), включених в кожному запиті сервера. Вебсховище є більш безпечним, і великі об’єми даних можуть зберігатися локально, не впливаючи на роботу вебсайту.

На відміну від файлів cookie, ліміт сховища набагато більший (принаймні 5 МБ), і інформація ніколи не передається на сервер.

Вебсховище - для кожного джерела (для домену і протоколу). Всі сторінки з одного джерела (однакового походження) можуть зберігати та отримувати доступ до цих самих даних.


Підтримка браузерами

Цифри в таблиці визначають першу версію браузера, яка повністю підтримує вебсховище.

API
Веб-сховище 4.0 8.0 3.5 4.0 11.5

HTML Об’єкти вебсховища

Вебсховище HTML забезпечує два об’єкта для збереження даних на стороні клієнта:

  • window.localStorage - зберігає дані без дати закінчення строка дії;
  • window.sessionStorage - зберігає дані для одного сеанса (дані втрачаються при закритті вкладки веббраузера).

Перед використанням вебсховища перевірте підтримку браузером localStorage та sessionStorage:

if (typeof(Storage) !== "undefined") {
  // Код для localStorage/sessionStorage.
} else {
  // На жаль, підтримка вебсховища відсутня.
}

Об’єкт localStorage

Об’єкт localStorage зберігає дані без дати закінчення строку дії. Дані не будуть видалені під час закриття браузера і будуть доступні наступного дня, тижня або року.

Приклад

// Зберігаємо
localStorage.setItem("lastname", "Smith");

// Повертаємо
document.getElementById("result").innerHTML = localStorage.getItem("lastname");
Спробуйте самі »

Пояснення прикладу:

  • Створюємо пару localStorage name/value (ім’я/значення) з name='lastname' и value='Smith';
  • Отримуємо значення 'lastname' і вставляємо його в елемент з id='result' (результат).

Наведений вище приклад також може бути написаний таким чином:

// Зберігаємо
localStorage.lastname = "Smith";
// Вилучаємо
document.getElementById("result").innerHTML = localStorage.lastname;

Синтаксис для видалення елемента 'lastname' localStorage є наступним:

localStorage.removeItem("lastname");

Примітка: Пари name/value завжди зберігаються як рядки. Не забувайте конвертувати їх в інший формат, коли це необхідно!

Наступний приклад підрахує кількість кліків кнопки користувачем. В цьому коді рядок значень перетворюється в число, щоб мати можливість збільшити лічильник:

Приклад

if (localStorage.clickcount) {
  localStorage.clickcount = Number(localStorage.clickcount) + 1;
} else {
  localStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "Ви натиснули кнопку " +
localStorage.clickcount + " time(s).";
Спробуйте самі »

Об’єкт sessionStorage

Об’єкт sessionStorage відповідає об’єкту localStorage, крім того, що він зберігає дані лише для одного сеансу. Дані видаляються, коли користувач закриває відповідну вкладку веббраузера.

В наступному прикладі підраховується кількість разів, коли користувач натиснув кнопку в поточній сесії:

Приклад

if (sessionStorage.clickcount) {
  sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
} else {
  sessionStorage.clickcount = 1;
}
document.getElementById("result").innerHTML = "Ви натиснули кнопку " +
sessionStorage.clickcount + " раз(ів) в поточній сесії.";
Спробуйте самі »


Коментарі