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 зберігання даних. cookie


куки

Одну з можливостей збереження даних в javascript представляє використання куки. Для роботи з куками в об'єкті document призначена властивість cookie .

Для установки куків досить властивості document.cookie привласнити рядок з куками:

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
 
<script>

document.cookie = "login=tom32;";

</script>
</body>
</html>

В даному випадку встановлюється кука, яка називається " login " і яка має значення " tom32 ". І в більшості браузерів ми можемо подивитися її, дізнатися всю інформацію про неї і надалі її можна використовувати в додатку:

Рядок куки приймає до шести різних параметрів: ім'я куки, значення, термін закінчення дії ( expires ), шлях ( path ), домен ( domain ) і secure . Вище використовувалися тільки два параметри: ім'я куки і значення. Тобто в разі з рядком "login = tom32;" куки мають ім'я login і значення tom32 .

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

І в цьому випадку нам треба встановити параметр expires , тобто термін дії куків:

document.cookie = "login=tom32;expires=Mon, 31 Aug 2015 00:00:00 GMT;";

Тобто термін дії куки login закінчується в понеділок 31 серпня 2015 року в 00:00 . Формат параметра expires дуже важливий. Однак його можна згенерувати програмно. Для цього ми можемо використовувати метод toUTCString () об'єкта Date :

var expire = new Date();
expire.setHours(expire.getHours() + 4);
document.cookie = "login=tom32;expires=" + expire.toUTCString() + ";";

В даному випадку термін дії куки становитиме 4 години.

Якщо нам треба встановити куки для якогось певного шляху на сайті, то ми можемо використовувати параметр path . Наприклад, ми хочемо встановити куки тільки для шляху www.mysite.com/home :

document.cookie = "login=tom32;expires=Mon, 31 Aug 2015 00:00:00 GMT;path=/home;";

В цьому випадку для інших шляхів на сайті, наприклад, www.mysite.com/shop , ці куки будуть недоступні.

Якщо на нашому сайті є кілька доменів, і ми хочемо встановити куки безпосередньо для певного домену, тоді можна використовувати параметр domain . Наприклад, у нас на сайті є піддомен blog.mysite.com :

document.cookie = "login=tom32;expires=Mon, 31 Aug 2015 00:00:00 GMT;path=/;domain=blog.mysite.com;";

Параметр path=/ вказує, що куки будуть доступні для всіх директорій і шляхів поддомена blog.mysite.com .

Останній параметр - secure задає використання SSL (SecureSockets Layer) і підходить для сайтів, які використовують протокол https. Якщо значення цього параметра дорівнює true , то куки будуть використовуватися тільки при установці захищеного з'єднання ssl. За замовчуванням цей параметр дорівнює false .

document.cookie = "login=tom32;expires=Mon, 31 Aug 2015 00:00:00 GMT;path=/;domain=blog.mysite.com;secure=true;";

отримання куки

Для найпростішого вилучення куки з браузера досить звернутися до властивості document.cookie :

var expire = new Date();
expire.setHours(expire.getHours() + 4);
 
document.cookie = "city=Berlin;expires="+expire.toUTCString()+";";
document.cookie = "country=Germany;expires="+expire.toUTCString()+";";
document.cookie = "login=tom32;";
 
document.write(document.cookie);

Тут були встановлені три куки, і браузер виведе нам всі ці куки:

Витягнуті куки не включають параметри expires, path, domain і secure . Крім того, самі куки розділяються крапкою з комою, тому потрібно ще провести деякі перетворення, щоб отримати їх ім'я і значення:

var cookies = document.cookie.split(";");

for(var i=0; i<cookies.length; i++){
 
    var parts = cookies[i].split("="),
        name = parts[0], 
        value = parts[1];

    document.write("Імя куки: " + name + "<br/>");
    document.write("Значення: " + value + "<br/><br/>");

}

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