Работа С Файлами Cookie Из Javascript

Всем привет! Сегодня мне бы хотелось поделиться с теми, кто еще не в курсе, теорией, как работать с куками из JS. JS не предоставляет удобного API для работы с файлами cookie. И это, в принципе, неплохо, могло быть и хуже (например, js вообще не реализовал бы работу с куками), но все же лучше, когда куки можно читать одной инструкцией (что пока невозможно с нативными js).

Для них существует множество фреймворков и плагинов, восполняющих этот недостаток.

Однако есть проекты, где подключать фреймворк только для удобства работы с cookie-файлами нецелесообразно.

Собственно, я поставил и реализовал задачу по созданию методов управления куками, с красивыми аксессорами типа:

cookie.set('bla', 'blabla'); cookie.get('bla');

code.google.com/p/jscookie — страница в коде Google Немного теории о механизме, предоставляемом js для работы с файлами cookie: Все, что у нас есть, это свойство document.cookie; он не реализует никаких методов, знакомых среднестатистическому программисту, таких как document.cookie.get('bla');



Чтение файлов cookie

document.cookie содержит набор значений cookie_name=cookie_value; (через «;» (точка с запятой плюс пробел)), отсюда следует, что для того, чтобы получить значение конкретного куки, нужно разобрать всю строку и вытащить необходимые данные.

Примечательно то, что свойство содержит пары имя=значение и не содержит никаких дополнительных данных о файлах cookie, таких как: время истечения срока действия, путь, домен, безопасность.



Создание/обновление файлов cookie

document.cookie ведет себя как строка, но не как обычная.

Давайте представим, что у нас есть 2 куки key1 = val1 и key2 = val2.

alert(document.cookie) //key1=val1; key2=val2;

Чтобы добавить новый файл cookie, ключ3 = val3

document.cookie= 'key3=val3; '; alert(document.cookie) //key1=val1; key2=val2; key3=val3;

Чтобы обновить файл cookie, установите для ключа 2 значение hello world.

document.cookie= 'key2=hello world; '; alert(document.cookie) //key1=val1; key2=hello world; key3=val3;



Удаление файлов cookie

Теперь я расскажу вам немного о файлах cookie как таковых, я не претендую на полное и доскональное знание этой темы, я просто расскажу вам немного о том, что знаю.

Кук, помимо названия и значения, имеет в своем арсенале еще несколько важных свойств, а именно: expires — время, по истечении которого файл cookie будет удален.

домен — домен, для которого действителен куки, грубо говоря, если куки был создан на домене js.com, то он не будет виден ни на каком другом домене.

путь — набор документов, для которых браузер будет отправлять куки по запросу.

Secure — свойство флага, которое позволяет браузеру отправлять файлы cookie только во время соединения https. вообще все это записывается в виде document.cookie = 'key4=val4; [expires=Сб, 09 января 2010 г.

, 16:14:53 по Гринвичу; ][путь=/; ][домен=js.com; ][безопасный; ] Хитрость удаления файлов cookie заключается в обновлении файла cookie свойством expires, указывающим назад во времени, например:

document.cookie= 'key2=; expires=Mon, 05 Jul 1982 16:37:55 GMT; '; alert(document.cookie)//key1=val1; key3=val3;

На самом деле все UPD: это мой первый пост, прошу не давить слишком сильно.

надеюсь кому-то будет полезно Теги: #JavaScript #Cookies #Чулан

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.