Cookies в JavaScript.

Cookies – это небольшие фрагменты именованных данных, сохраняемые web-браузером и связанные с определенными web-страницами или web-сайтами. Cookies первоначально предназначались для разработки серверных сценариев и на низшем уровне реализованы как расширение протокола HTTP. Данные в cookies автоматически передаются между web-браузером и web-сервером, благодаря чему серверные сценарии могут читать и записывать значения, сохраняемые на стороне клиента.

JavaScript поддерживает встроенный объект с именем document.cookie для работы с cookies. Этот объект хранит все cookies, доступные для страницы, с которой запущен скрипт. Например:

<SCRIPT LANGUAGE="JavaScript">
document.cookie="foo=bar; path=/; expires=Mon, 01-Jan-2001 00:00:00 GMT";
</SCRIPT>

Для работы с cookies можно воспользоваться функций SetCookie:

<SCRIPT LANGUAGE="JavaScript">
function setCookie (name, value, expires, path, domain, secure) {
      document.cookie = name + "=" + escape(value) +
        ((expires) ? "; expires=" + expires : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}
</SCRIPT>

Функция SetCookie довольно универсальна, в тех случаях, когда нужно создать много cookies, либо когда требуется устанавливать параметры на лету.

Поддержка cookies

Прежде чем использовать cookies в сценариях JavaScript, следует проверить, не отключен ли режим их сохранения. В большинстве браузеров это можно сделать, проверив свойство navigator.cookieEnabled. Если оно содержит значение true, значит, работа с cookies разрешена, а если false – запрещена.

Свойство navigator.cookieEnabled не является стандартным, поэтому если сценарий вдруг обнаружит, что оно не определено, придется проверить, поддерживаются ли cookies, попытавшись записать, прочитать и удалить тестовый cookie.

Сохранение cookies

Чтобы связать временное значение cookie с текущим документом, достаточно присвоить его свойству cookie строку следующего формата: имя=значение. Например:

document.cookie = "version=" + encodeURIComponent(document.lastModified);

При следующем чтении свойства cookie сохраненная пара имя/значение будет включена в список cookies документа. Значения cookie не могут содержать точки с запятой, запятые или пробельные символы. По этой причине для кодирования значения перед сохранением его в cookie, возможно, потребуется использовать глобальную JavaScript-функцию encodeURIComponent(). В этом случае при чтении значения cookie надо будет вызвать соответствующую функцию decodeURIComponent().

Чтение cookies

Когда свойство cookie используется в JavaScript-выражении, возвращаемое им значение содержит все cookies, относящиеся к текущему документу. Эта строка представляет собой список пар имя=значение, разделенных точками с запятой и пробелами. Значение не включает какие-либо атрибуты, которые могли быть установлены для cookie. При работе со свойством document.cookie обычно приходится использовать метод split(), чтобы разбить его значение на отдельные пары имя/значение.

После извлечения значения cookie из свойства cookie его требуется интерпретировать, основываясь на том формате или кодировке, которые были указаны создателем cookie. Например, cookie можно передать функции decodeURIComponent(), а затем функции JSON.parse().

Ограничения cookies

Cookies предназначены для сохранения небольших объемов данных серверными сценариями, которые должны передаваться на сервер при обращении к каждому соответствующему URL-адресу. Стандарт, определяющий cookies, рекомендует производителям браузеров не ограничивать количество и размеры сохраняемых cookies, но браузеры не обязаны сохранять в сумме более 300 cookies, 20 cookies на один веб-сервер или по 4 Кбайт данных на один cookie. На практике браузеры позволяют сохранять гораздо больше 300 cookies, но ограничение на размер 4 Кбайт для одного cookie в некоторых браузерах по-прежнему соблюдается.

Функция deleteCookie(name)

Функция очень проста – удаляем вызовом setCookie с датой в прошлом.

function deleteCookie(name) {
  setCookie(name, "", {
    expires: -1
  })
}

 
Поделиться в facebook
Facebook
Поделиться в twitter
Twitter
Поделиться в vk
VK
Поделиться в google
Google+
Поделиться в email
Email

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Группа в VK

Помощь проекту

Обнаружили опечатку?

Сообщите нам об этом, выделите текст с ошибкой и нажмите Ctrl+Enter, будем очень признательны!

Свежие статьи

Похожие статьи

Фреймворк Vue.js

Фреймворк Vue.js

Vue (произносится как view – вью) – это прогрессивный фреймворк для создания пользовательских интерфейсов. Vue позволяет строить приложения с применением архитектурного паттерна MVVM (Model-View-ViewModel). Особенность

 
Фреймворки и библиотеки в JavaScript

Фреймворки и библиотеки в JavaScript

JavaScript — это мультипарадигмальный язык программирования, который поддерживает типы программирования, управляемые событиями, функциональные и обязательные (в том числе объектно-ориентированные и основанные на прототипах). Фреймворки JavaScript

 
Знакомство с Ajax.

Знакомство с Ajax.

AJAX расшифровывается как «Асинхронный JavaScript и XML». Под AJAX понимается не одна технология, и она не является новой. На самом деле это группа технологий (HTML,

 
Знакомство с jQuery

Знакомство с jQuery

jQuery — это библиотека JavaScript, в основу которой положено взаимодействие JavaScript и HTML. Она позволяет легко получить доступ к любому элементу DOM, с ее помощью

 

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: