JavaScript виконання коду JavaScript підключення зовнішнього файлу JavaScript console.log JavaScript змінні і константи JavaScript типи даних JavaScript операції зі змінними JavaScript перетворення даних JavaScript масиви JavaScript умовні конструкції JavaScript цикли JavaScript функції JavaScript область видимості змінних JavaScript замикання і функції IIFE JavaScript Паттерн Модуль JavaScript рекурсивні функції JavaScript перевизначення функцій JavaScript hoisting JavaScript передача параметрів за значенням і за посиланням JavaScript стрілочні функції JavaScript ООП Object JavaScript ООП вкладені об'єкти і масиви в об'єктах JavaScript ООП перевірка наявності і перебір методів і властивостей JavaScript ООП об'єкти у функціях JavaScript ООП конструктори об'єктів JavaScript ООП розширення об'єктів. prototype JavaScript ООП інкапсуляція JavaScript ООП Функція як об'єкт. Методи call і apply JavaScript ООП спадкування JavaScript ООП Ключове слово this JavaScript ООП Object destructuring JavaScript ООП класи JavaScript ООП Date. Робота з датами JavaScript Об'єкт Math. математичні операції JavaScript Об'єкт Array. Робота з масивами JavaScript ООП об'єкт Number JavaScript String JavaScript String Об'єкт RegExp. Регулярні вирази JavaScript String Регулярні вирази в методах String JavaScript String Синтаксис регулярних виразів JavaScript Робота з браузером і BOM JavaScript діалогові вікна JavaScript Історія браузера. об'єкт history JavaScript об'єкт location JavaScript об'єкт navigator JavaScript таймери JavaScript DOM Введення JavaScript DOM Об'єкт document. Пошук елементів JavaScript DOM Властивості об'єкта document JavaScript DOM Об'єкт Node. Навігація по DOM JavaScript DOM Створення, додавання і видалення елементів веб-сторінки JavaScript DOM Об'єкт Element. управління елементами JavaScript DOM Зміна стилю елементів JavaScript події. Введення в обробку подій. JavaScript події обробники JavaScript події. об'єкт Event JavaScript події. поширення подій JavaScript події миші JavaScript події клавіатури JavaScript FORMS. Форми і їх елементи JavaScript FORMS. Кнопки JavaScript FORMS. текстові поля JavaScript FORMS. Прапорці та перемикачі JavaScript FORMS. Список select JavaScript JSON JavaScript зберігання даних. cookie JavaScript зберігання даних. Web Storage JavaScript Collection. Ітератори JavaScript Collection. Генератори JavaScript Collection. Множина Set JavaScript Collection. Map JavaScript Collection. WeakSet і WeakMap JavaScript AJAX. XMLHttpRequest JavaScript AJAX. Відправка даних JavaScript AJAX. Promise в Ajax-запитах

JavaScript зберігання даних. Web Storage


Хоча куки дозволяють зберігати інформацію, вони мають ряд обмежень. Наприклад, браузер має обмеження на розмір куків - кожна кука не може перевищувати 4kB . Куки мають термін дії, після якого видаляються. Куки є невід'ємною рисою протоколу HTTP і при кожному запиті до сервера передаються разом із запитом на сервер. Однак для роботи з куками на стороні клієнта в коді javascript не має значення передача куків на сервер. Крім того, для отримання збережених куків треба написати деяку порцію коду.

Тому в HTML5 була впроваджена нова концепція для зберігання даних - web storage . Web storage складається з двох компонентів: session storage і local storage .

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

Local storage представляє сховище для даних на постійній основі. Дані з local storage автоматично з сайту не видаляються і не мають терміну дії. Ці дані не передаються на сервер в запиті HTTP. Крім того, обсяг local storage становить в Chrome і Firefox 5 Mб для домену, а в IE - 10 Mб.

Всі дані в web storage представляють набір пар ключ-значення. Тобто кожен об'єкт має унікальне ім'я-ключ і певне значення.

Для роботи з local storage в javascript використовується об'єкт localStorage , а для роботи з session storage - об'єкт sessionStorage .

Для збереження даних повинна бути передана в метод setItem () об'єкта localStorage :

localStorage.setItem("login", "tom32@gmail.com");

У цей метод передаються два значення: ключ і значення об'єкту, що зберігається.

Якщо в localStorage вже є об'єкт з ключом "login" , то його значення замінюється новим.

Для отримання збережених даних треба викликати метод getItem () :

var login = localStorage.getItem("login"); //tom32@gmail.com

У цей метод передається ключ об'єкта.

Щоб видалити об'єкт, застосовується метод removeItem () , який приймає ключ для видалення:

localStorage.removeItem("login");

І для повного видалення всіх об'єктів з localStorage можна використовувати метод clear () :

localStorage.clear();

Зі збереженням простих об'єктів все просто, проте при цьому треба враховувати, що дані в localStorage зберігаються у вигляді рядка:

localStorage.setItem("age", 23);

var age = localStorage.getItem("age");
age = parseInt(age) + 10;

document.write(age);        //33

Якщо в даному випадку не перетворити значення до числа за допомогою parseInt() , то age буде діяти як рядок.

Труднощі можуть виникнути зі збереженням складних об'єктів:

var user ={
    name: "Tom",
    age: 23,
    married: false
};
 
localStorage.setItem("user", user);
var savedUser = localStorage.getItem("user");

document.write(savedUser); //[object Object]

document.write(savedUser.name); // undefined - savedUser - рядок, а не обєкт

У цьому випадку нам треба використовувати серіалізацію в формат JSON :

var user ={
    name: "Tom",
    age: 23,
    married: false
};
 
localStorage.setItem("user", JSON.stringify(user));

var savedUser = JSON.parse(localStorage.getItem("user"));

document.write(savedUser.name + " " + savedUser.age +" " + savedUser.married); // Tom 23 false

І в завершенні треба сказати, що в деяких браузерах за допомогою спеціальних інструментів ми можемо побачити збережені об'єкти в local storage. Наприклад, в Google Chrome:


Наш партнер:
beta test mp3 playlist downloader