Работа с cookie в JavaScript
Как известно куки храняться на устройстве пользователя. И передаются на сервер через HTTP заголовки. Поэтому работают с ними в основном на стороне сервера. Но иногда более уместно обратиться к кукам на стороне клиента. И чтобы не нагружать JavaScript отправкой запросов на сервер, можно использовать плагин jQuery, который предоставит возможность получать, добавлять и удалять куки без всяких обращений к серверной части. В этой статье я предлагаю расмотреть принцип работы этого плагина.
Сначала давайте подключим библиотеку jQuery и файл с плагином (можно скачать на официальном сайте или на GitHub):
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script>
<script type="text/javascript" src="/jquery.cookie.js"></script>
После этого мы можем работать с куками через плагин. Ниже приведены примеры.
Создание куки:
$.cookie('cookie_name', 'cookie_value');
С указанием срока хранения (в днях):
$.cookie('cookie_name', 'cookie_value', {expires: 365});
С указанием срока хранения и определенного урла сайта, с которого будет доступна:
$.cookie('cookie_name', 'cookie_value', {expires: 365, path: '/'});
При path: '/' кука будет доступна для всего сайта.
С указанием срока хранения и домена, для которого будет доступна:
$.cookie('cookie_name', 'cookie_value', {expires: 365, domain: 'site.ru'});
С указанием срока хранения и доступностью только для протокола https:
$.cookie('cookie_name', 'cookie_value', {expires: 365, secure: true});
Получение куки:
var cookie = $.cookie('cookie_name'); // cookie_value
Всё что есть:
$.cookie(); // {"cookie_name1": "cookie_value1", "cookie_name2": "cookie_value2"}
Удаление куки
$.removeCookie('cookie_name'); // true
Важно! Если при создании куки был задан путь (path), то при при удалении его также нужно указать. Например:
$.cookie('cookie_name', 'cookie_value', {path: '/order/'});
$.removeCookie('cookie_name'); // false
$.removeCookie('cookie_name', {path: '/order/'}); // true
Как видно из примеров, jQuery плагин намного упрощает работу с куками в JavaScript. А то, что куки очень удобны для идентификации пользователя и хранения разной информации, делает его хорошим инструментом для решения названных задач.