Обзор файлов cookie.
Если для хранения данных столбца покупок используется неизменяемая структура, а страница отображения продукта постоянно меняется, хотя это может обеспечить функцию моделирования глобальных переменных, это не является строгим. Например, если вы щелкните правой кнопкой мыши на странице фрейма навигации и выберите команду [Обновить] в контекстном меню, все переменные JavaScript будут потеряны. Следовательно, для реализации строгих межстраничных глобальных переменных этот метод невозможен. Другой механизм в JavaScript: файлы cookie могут соответствовать требованиям настоящих глобальных переменных.
Файл cookie — это механизм, предоставляемый браузером, который передает атрибут cookie объекта документа в JavaScript. Он может контролироваться JavaScript и не является свойством самого JavaScript. Файл cookie — это файл, хранящийся на жестком диске пользователя. Обычно этот файл соответствует имени домена. Когда браузер снова обращается к имени домена, файл cookie становится доступным. Таким образом, файлы cookie могут охватывать несколько веб-страниц под одним доменным именем, но не могут использоваться для нескольких доменных имен.
Разные браузеры реализуют файлы cookie по-разному, но их свойства одинаковы. Например, в Windows 2000 и Windows XP файлы cookie хранятся в папке Documents and SettingsuserNamecookie. Обычный формат именования: [email protected] .
Механизм cookie хранит информацию на жестком диске пользователя, поэтому ее можно использовать как глобальную переменную. Это одно из его самых больших преимуществ. Его можно использовать в следующих ситуациях.
1. Сохраните статус входа пользователя. Например, идентификатор пользователя сохраняется в файле cookie, чтобы пользователю не нужно было снова входить в систему при следующем посещении страницы. Многие форумы и сообщества сейчас предоставляют такую функцию. Файлы cookie также могут устанавливать срок действия. По истечении этого срока файл cookie автоматически исчезнет. Поэтому система часто может предлагать пользователям оставаться в системе: распространенные варианты — один месяц, три месяца, один год и т. д.
2. Отслеживайте поведение пользователей. Например, веб-сайт прогноза погоды может отображать местные погодные условия в зависимости от региона, выбранного пользователем. Если вам придется каждый раз выбирать местоположение, это будет затруднительно. При использовании файлов cookie система сможет запомнить область, посещенную в последний раз, и при следующем открытии страницы она будет автоматически отображаться. последний пользователь Погодные условия в вашем регионе. Поскольку все происходит в фоновом режиме, такая страница как бы настроена под определенного пользователя и очень удобна в использовании.
3. Настройте страницу. Если на веб-сайте предусмотрена функция изменения оформления или макета, файлы cookie могут использоваться для записи параметров пользователя, таких как цвет фона, разрешение и т. д. При следующем посещении пользователем стиль интерфейса последнего посещения все равно может быть сохранен.
4. Создайте корзину. Как и в предыдущем примере, файлы cookie используются для записи товаров, которые пользователю необходимо приобрести, и их можно отправлять единообразно во время оформления заказа. Например, Taobao использует файлы cookie для записи продуктов, которые просматривали пользователи, чтобы их можно было сравнить в любое время.
Конечно, приведенные выше приложения — это лишь некоторые из приложений, которые могут выполнять файлы cookie, но есть и другие функции, требующие глобальных переменных. Недостатки файлов cookie в основном связаны с безопасностью и защитой конфиденциальности. В основном это следующие категории:
1. Файлы cookie могут быть отключены. Когда пользователь уделяет большое внимание защите личной информации, он, скорее всего, отключит функцию файлов cookie в браузере.
2. Файлы cookie связаны с браузером; Это означает, что даже если вы посещаете одну и ту же страницу, файлы cookie, сохраненные в разных браузерах, не могут быть доступны друг другу.
3. Файлы cookie могут быть удалены; Поскольку каждый файл cookie представляет собой файл на жестком диске, он, скорее всего, будет удален пользователем.
4. Безопасность файлов cookie недостаточно высока; Все файлы cookie записываются в файлы в виде обычного текста, поэтому, если вы хотите сохранить имя пользователя, пароль и другую информацию, лучше всего заранее зашифровать ее.
Установите файлы cookie.
Каждый файл cookie представляет собой пару имя/значение. Вы можете назначить следующую строку для document.cookie:
document.cookie=”userId=828″.
Если вы хотите хранить несколько пар имя/значение одновременно, вы можете использовать это. разделение разделяется пробелами (;), например:
document.cookie="userId=828; userName=hulk";
в именах и значениях файлов cookie нельзя использовать точки с запятой (;), запятые (,) и знаки равенства (=). и пространства. Это легко сделать в имени файла cookie, но значение, которое нужно сохранить, не определено. Как хранить эти значения? Метод заключается в использовании функции escape() для кодирования, которая может использовать шестнадцатеричное представление некоторых специальных символов. Например, пробелы будут закодированы как «20%», которые можно сохранить в значении cookie, и можно использовать это решение. Также избегайте появления китайских искаженных иероглифов. Например:
document.cookie="str="+escape("I love ajax");
Эквивалент:
document.cookie="str=I%20love%20ajax";
При использовании кодировки escape() это необходимо после получения. значение Используйте unescape() для декодирования и получения исходного значения cookie, которое было введено ранее.
Хотя document.cookie выглядит как свойство и ему могут быть присвоены разные значения. Но он отличается от общих атрибутов. Изменение его назначения не означает потерю исходного значения. Например, непрерывное выполнение следующих двух операторов:
document.cookie=”userId=828″;
document.cookie
=”userName=hulk”;
на этот раз браузер будет поддерживать два файла cookie, а именно userId и userName, поэтому присвоение значения document.cookie больше похоже на выполнение такого оператора:
document.addCookie("userId=828");
document.addCookie("userName=) hulk" );
Фактически, браузер устанавливает файлы cookie таким образом. Если вы хотите изменить значение файла cookie, вам нужно всего лишь переназначить его, например:
document.cookie="userId=929";
Это изменит файл cookie с именем userId. Значение установлено равным 929.
Получение значения файла cookie
Ниже описано, как получить значение файла cookie. Значение файла cookie можно получить непосредственно из document.cookie:
var strCookie=document.cookie;
будет получена строка, состоящая из нескольких пар имя/значение, разделенных точкой с запятой. Эти пары имя/значение включают имена под именем домена. Все файлы cookie.
В реальной разработке файлы cookie часто необходимо сохранять в течение длительного времени, например, для сохранения статуса входа пользователя. Этого можно добиться с помощью следующих параметров:
document.cookie=»userId=828 expires=GMT_String»;
Среди них GMT_String — это строка времени, выраженная в формате GMT. Этот оператор устанавливает для файла cookie userId срок действия, представленный GMT_String. По истечении этого времени файл cookie исчезнет и станет недоступным.
Удаление файлов cookie
Чтобы удалить файл cookie, вы можете установить срок его действия в прошлом.
Укажите путь, по которому можно получить доступ к файлу cookie. По умолчанию, если файл cookie создается на странице, он также доступен другим страницам в каталоге, в котором находится страница. Если в этом каталоге есть подкаталоги, вы также можете получить к нему доступ в подкаталогах. Например, файл cookie, созданный в www.xxxx.com/html/a.html, доступен для www.xxxx.com/html/b.html или www.xxx.com/html/some/c.html , но не может Доступен по адресу www.xxxx.com/d.html .
Чтобы управлять каталогом, к которому могут иметь доступ файлы cookie, вам необходимо использовать параметр пути для установки файлов cookie. Синтаксис следующий:
document.cookie="name=value; path=cookieDir"
где cookieDir представляет каталог, в котором файлы cookie могут находиться
.быть доступны. Например:
document.cookie="userId=320; path=/shop";
означает, что текущий файл cookie можно использовать только в каталоге магазина.
Если вы хотите сделать файлы cookie доступными на веб-сайте, вы можете указать cookie_dir в качестве корневого каталога, например:
document.cookie="userId=320; path=/";
Указание имени хоста, который может получить доступк файлам cookie, аналогично
указанию имени хоста, который может получить доступ к файлам cookie
.путь. Имя хоста относится к одному и тому же. Разные хосты в одном домене, например:
www.google.com и gmail.google.com — это два разных имени хоста. По умолчанию файлы cookie, созданные на одном хосте, недоступны на другом хосте, но ими можно управлять с помощью параметра домена. Формат синтаксиса:
document.cookie="имя=значение; домен=cookieDomain" ";
В качестве примера взят Google. , чтобы обеспечить межхостовый доступ, вы можете написать:
document.cookie="name=value;domain=.google.com";
Таким образом, все хосты под google.com смогут получить доступ к файлу cookie.
Комплексный пример: создание общей функции обработки файлов cookie.
Процесс обработки файлов cookie относительно сложен и имеет определенные сходства. Таким образом, можно определить несколько функций для выполнения общих операций с файлами cookie, тем самым обеспечивая повторное использование кода. Ниже перечислены часто используемые операции с файлами cookie и реализации их функций.
1. Установить файлы cookie
функция SetCookie(имя,значение,истекает,путь,домен,безопасный)
{
вар expDays = истекает*24*60*60*1000;
вар expDate = новая дата ();
expDate.setTime(expDate.getTime()+expDays);
var expString = ((expires==null) ? “” : (”;expires="+expDate.toGMTString()))
var pathString = ((path==null) ? "" : (";path="+path))
var domainString = ((domain==null) ? “” : (”;domain="+domain))
var secureString = ((secure==true) ? «;secure» : «»)
document.cookie = name + «=" + escape(value) + expString + pathString + domainString + secureString;
}
2. Получите значение cookie указанного имени:
функция GetCookie(имя)
{
результат вар = ноль;
var myCookie = document.cookie + ";";
вар searchName = имя + "=";
вар startOfCookie = myCookie.indexOf(searchName);
вар endOfCookie;
если (startOfCookie != -1)
{
startOfCookie += имя_поиска.длина;
endOfCookie = myCookie.indexOf(";",startOfCookie);
результат = unescape(myCookie.substring(startOfCookie, endOfCookie));
}
вернуть результат;
}
3. Удалите файл cookie с указанным именем:
функция ClearCookie(имя)
{
вар ThreeDays=3*24*60*60*1000;
вар expDate = новая дата ();
expDate.setTime(expDate.getTime()-ThreeDays);
document.cookie=name+»=;expires="+expDate.toGMTString();
}