Cookies позволяют хранить информацию о пользователях в веб - страницах.
Что такое Cookies ?
Cookies являются данные, которые хранятся в небольших текстовых файлов, на вашем компьютере.
Когда веб-сервер посылает веб-страницу в браузере, соединение отключается, и сервер забывает все о пользователе.
Cookies были изобретены , чтобы решить эту проблему "как запомнить информацию о пользователе":
- Когда пользователь посещает веб - страницу, его имя может храниться в cookie .
- В следующий раз пользователь посещает страницу, то cookie "запоминает" его имя.
Cookies сохраняются в пар имя-значение, как:
username = John Doe
Когда браузер запрашивает веб - страницу с сервера, cookies , принадлежащие к странице добавляется к запросу. Таким образом, сервер получает необходимые данные "запоминать" информацию о пользователях.
Создать a Cookie с JavaScript
JavaScript может создавать, читать и удалять cookies с document.cookie собственности.
С помощью JavaScript, a cookie может быть создан следующим образом :
document.cookie = "username=John Doe";
Вы можете также добавить дату истечения срока действия (во времени UTC). По умолчанию, the cookie удаляются при закрытии браузера:
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC";
С параметром пути, вы можете сообщить браузеру , какой путь the cookie принадлежит. По умолчанию, the cookie принадлежит к текущей странице.
document.cookie = "username=John Doe; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
Читайте a Cookie с JavaScript
С помощью JavaScript, cookies можно прочитать следующим образом :
var x = document.cookie;
document.cookie будет возвращать все cookies в одной строке так же, как: cookie1=value; cookie2=value; cookie3=value; cookie1=value; cookie2=value; cookie3=value;
Изменение a Cookie с JavaScript
С помощью JavaScript, вы можете изменить a cookie точно так же , как вы создаете его:
document.cookie = "username=John Smith; expires=Thu, 18 Dec 2013 12:00:00 UTC; path=/";
Старое cookie будет перезаписана.
Удалить a Cookie с JavaScript
Удаление a cookie очень просто. Просто установите параметр истекает в пройденный дате:
document.cookie = "username=; expires=Thu, 01
Jan 1970 00:00:00 UTC";
Обратите внимание , что вы не должны указывать a cookie значение при удалении a cookie .
Cookie Строка
document.cookie свойство выглядит как обычный текстовой строки. Но это не так.
Даже если вы написать целую cookie строку document.cookie , когда вы читаете его снова, вы можете увидеть только пара имя-значение этого.
Если вы установили новый cookie , старые cookies не будут перезаписаны. Новое cookie добавляется к document.cookie , так что если вы читаете document.cookie снова вы получите что - то вроде:
cookie1 = value; cookie2 = value;
фото
Если вы хотите , чтобы найти значение одного указанного cookie , вы должны написать функцию JavaScript , который ищет для cookie значения в cookie строки.
JavaScript Cookie Пример
В примере для подражания, мы создадим a cookie , которое хранит имя посетителя.
Первый раз, когда посетитель приходит на веб-страницу, он будет предложено заполнить его имя. Название затем хранится в a cookie .
В следующий раз, посетитель приходит на той же странице, то он получит приветственное сообщение.
Для примера мы создадим 3 функции JavaScript:
- Функция для установки cookie значение
- Функция , чтобы получить cookie значение
- Функция для проверки cookie значение
Функция для Установить a Cookie
Во- первых, мы создаем функцию , которая хранит имя посетителя в a cookie переменной:
пример
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var
expires = "expires="+ d.toUTCString();
document.cookie =
cname + "=" + cvalue + "; " + expires;
}
Объяснение примера:
Параметры функции выше, имя cookie (cname) , значение the cookie (cvalue) , а также от количества дней , пока печенье не должен истекать (exdays).
Функция устанавливает a cookie путем сложения cookiename , the cookie значение, и истекает строку.
Функция для получения a Cookie
Затем мы создаем функцию , которая возвращает значение указанного cookie :
пример
function getCookie(cname) {
var name = cname + "=";
var ca = document.cookie.split(';');
for(var i = 0; i <ca.length; i++) {
var c = ca[i];
while (c.charAt(0)=='
') {
c = c.substring(1);
}
if (c.indexOf(name) == 0) {
return c.substring(name.length,c.length);
}
}
return "";
}
Функция пояснил:
Возьмите the cookiename в качестве параметра (CNAME).
Создание переменной (имя) с текстом для поиска (CNAME + "=").
Split document.cookie на точку с запятой в массиве называется ca (ca = document.cookie.split(';')) .
Цикл через ца array (i=0;i<ca.length;i++) , и зачитать каждое значение c=ca[i]) .
Если the cookie обнаружен (c.indexOf(name) == 0) , возвращает значение the cookie (c.substring(name.length,c.length) .
Если the cookie не найден, вернитесь "".
Функция для проверки a Cookie
Наконец, мы создаем функцию , которая checks , если a cookie установлен.
Если the cookie установлен он будет отображать приветствие.
Если the cookie не установлен, он будет отображать окно быстрое, запрашивающее имя пользователя и сохраняет имя пользователя cookie в течение 365 дней, путем вызова setCookie функции:
пример
function checkCookie() {
var
username=getCookie("username");
if (username!="") {
alert("Welcome again " + username);
} else {
username = prompt("Please enter your name:", "");
if (username != ""
&& username != null) {
setCookie("username", username, 365);
}
}
}
Все вместе сейчас
пример
function setCookie(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+d.toUTCString();
document.cookie = cname + "=" + cvalue +
"; " + expires;
}
function getCookie(cname) {
var name = cname + "=";
var ca
= document.cookie.split(';');
for(var i = 0; i < ca.length; i++)
{
var c = ca[i];
while (c.charAt(0) == '
') {
c = c.substring(1);
}
if (c.indexOf(name)
== 0) {
return c.substring(name.length, c.length);
}
}
return "";
}
function
checkCookie() {
var user = getCookie("username");
if (user != "")
{
alert("Welcome again " + user);
} else {
user = prompt("Please enter your name:", "");
if (user != "" &&
user != null) {
setCookie("username", user, 365);
}
}
}
Попробуй сам " Приведенный выше пример запускает checkCookie() функцию при загрузке страницы.