Авторизация







Регистрация / Забыли пароль?

Регистрация нового пользователя











< Назад

Восстановление пароля





< Назад

Добро пожаловать

Выход


Ежедневное обновление статей и уроков, будь в курсе, держи руку на пульсе событий!

Главная >> JavaScript

Работа с COOKIE в JavaScript


Существует масса реализаций работы с COOKIE на JavaScript, но все эти библиотеки занимают кучу места и сложны в работе. Давайте рассмотрим простой но рабочий вариант функций по работе с COOKIE, им я пользуюсь и сам.


  Что же такое cookie? Cookie - небольшой фрагмент данных, отправленный веб-сервером и хранимый на компьютере пользователя. Веб-клиент (обычно веб-браузер) всякий раз при попытке открыть страницу соответствующего сайта пересылает этот фрагмент данных веб-серверу в виде HTTP-запроса. Но мы не будем уходить в дебри и сразу перейдём к примеру, он состоит из трёх функций, установка (setCookie), удаление (deleteCookie) и чтение (getCookie) cookie. В JavaScript, работа с cookie осуществляется с помощью document.cookie, её мы и возмём за основу, и так функция установки cookie:
function setCookie(name, value, expires, path, domain, secure) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
	
	if (expires) str += '; expires=' + expires.toGMTString();
	if (path)    str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
	
	document.cookie = str;
	return true;
}
  name - имя нашей cookie, value - принимаемое значение, expires - время жизни нашей куки, path - указание пути из которого мы сможем работать с cookie, domain - домен (сайт) на котором она будет считаться действительной, secure - использовать или нет методы защиты cookie. 
  В теле функции, первое условие проверяет значение cookie, если оно не задано, то и смысла продолжать формировать её нет, и мы сразу выходим, если всё в порядке, идём дальше. Чтобы избежать некорректных запросов к серверу мы используем функцию encodeURIComponent она обрабатывает введённое нами значение cookie и уже в таком виде оно будет хранить в браузере.
  Следующие 4 строки, проверяют на существование переменные (время, путь в котором будет действовать cookie, домен (сайт) на котором будет действовать cookie и защищать или нет cookie. В заключении, мы передаём всё это переменной document.cookie и возвращаем истину для правильного завершения скрипта.
  На этом формирование cookie заканчивается, переходим к функции которая узнает значение cookie - getCookie
function getCookie(name) {
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
	
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);
	
	return false;
}
  Для того чтобы узнать значение cookie с именем "name" нам следует написать getCookie("name"). Вторая строка задаёт регулярное выражение в котором нам будет выдана именно вторая часть cookie, т.е. именно значение. new RegExp(pattern) реализует регулярное выражение и в переменную regexp записывает результат и отдаёт нам в виде return decodeURIComponent(RegExp["$1"]) до этого выполняет поиск соответствия между регулярным выражением и указанной строкой.
function deleteCookie(name) {
	 var cookie_date = new Date (2000, 0);
	  document.cookie = name += "=; expires=" + cookie_date.toGMTString();
}
  Удаление cookie происходит обычным назначением ей времени жизни в прошедшем времени, в нашем случае это new Date (2000, 0) а значит в январе 2000 года. Удалить нашу cookie можно вызвав deleteCookie() с параметром deleteCookie("name"). Вот в общем то и всё, 3 простых функции для работы с cookie из JavaScript. Они не требуют сторонних библиотек, что может сэкономить время загрузки страницы и простоты в обслуживании. Все вместе:
function setCookie(name, value, expires, path, domain, secure) {
	if (!name || !value) return false;
	var str = name + '=' + encodeURIComponent(value);
	
	if (expires) str += '; expires=' + expires;
	if (path)    str += '; path=' + path;
	if (domain)  str += '; domain=' + domain;
	if (secure)  str += '; secure';
	
	document.cookie = str;
	return true;
}

function getCookie(name) {
	var pattern = "(?:; )?" + name + "=([^;]*);?";
	var regexp  = new RegExp(pattern);
	
	if (regexp.test(document.cookie))
	return decodeURIComponent(RegExp["$1"]);
	
	return false;
}

function deleteCookie(name) {
	 var cookie_date = new Date (2000, 0);
	  document.cookie = name += "=; expires=" + cookie_date.toGMTString();
}
Пользуемся, задаём вопросы.

Дата публикации: 18.01.2013
Опубликовал: Сергей Кашурин
Просмотров: 640
Правила перепечатки

Правила перепечатки

Уважаемый посетитель сайта!
Ниже преведены условия использования и перепечатки материалов сайта /
Все материалы данного сайта подготовлены для Вас лично мной.

Большая часть материалов сайта - это авторские уроки, остальные, это переводы уроков с английского языка на русский.
Если Вы решили использовать материалы данного сайта где-то на своих ресурсах или в рассылке, то соблюдайте следующие требования:
1. Урок или статья должны перепечатываться «как есть» с сохранением всех ссылок на источник урока, а если это перевод, то и на сайт, авторы которого подготовили его.
2. Ссылки на сайт источника и переводчика обязательно должны быть работоспособными (при нажатии по ссылке человек должен перейти на сайт автора/переводчика). Если Вы перепечатали какой-либо документ, обязательно проверьте ссылку на работоспособность.
3. Искажение информации об авторе, источнике, переводчике при перепечатке материалов запрещено!
4. Содержание урока или статьи при перепечатке не должно подвергаться модификациям и переделке. Все уроки и статьи, размещенные на сайте, должны перепечатываться как есть. Вы не имеете права урезать, исправлять или иным образом коверкать републикуемый документ.
С уважением, Сергей Кашурин– владелец сайта /


25 поразительных анимаций CSS3, которые улучшат внешний вид вашего сайта
CSS3, сокращение от английского Cascading Style Sheets 3, третье поколение таблиц стилей, которые используются для визуального представления сайта, при минимальном размере кода. Этот последний многообещающий набор стандартов, состоит из большого числа функций и инструментов, которые позволяют улучшить и контролировать дизайн и увеличивать скорость загрузки сайта.
BARAJA - jQuery плагин создающий великолепные информационные карточки на вашем сайте, экономя драгоценное место
Благодаря этому плагину, элементы могут располагаться как карты в виде стопки, раскладываясь перед нами оригинальным способом. Добавьте к элементам небольшой текст и уникальный рисунок, примените оригинальный эффект преобразования, и ваша страничка преобразится на глазах.
Colorizer: пользователь сам выберет цвет продукта на вашем сайте
Когда вы выбираете машину, или футболку в интернет магазине, хотелось бы вам самим выбрать для неё цвет? Думаю да. В этой статье, я расскажу вам про плагин Colorizer, с помощью которого, для наших дорогих пользователей, мы сможем предоставить возможность выбора цвета продукта в котором он заинтересован, что оставит о нас приятное впечатление и заявку на покупку. jQuery плагин Colorizer - изменим цвет к лучшему.
http://salon-new-york.ru электробритва для женщин Braun грумер fg 1000
Когда вы выбираете машину, или футболку в интернет магазине, хотелось бы вам самим выбрать для неё цвет? Думаю да. В этой статье, я расскажу вам про плагин Colorizer, с помощью которого, для наших дорогих пользователей, мы сможем предоставить возможность выбора цвета продукта в котором он заинтересован, что оставит о нас приятное впечатление и заявку на покупку. jQuery плагин Colorizer - изменим цвет к лучшему.

Уроки и статьи

«Найден Самый Дешевый и Эффективный Способ Рекламы в Интернете!»

Доказанo: ведение своей почтовой рассылки - это самый действенный и дешевый метод рекламы в Интернете.

Используете ли Вы его?

Если нет, то Вы давно теряете свои деньги! Если да, то пришло время вести Вашу почтовую рассылку на самом эффективном инструменте в Рунете - сервисе рассылок SmartResponder.ru

Узнать об этом подробнее >>

Быть в курсе всех событий: