Самоучитель по креативному веб-дизайну. Книга 3, стр.58

свойстве document. cookie пары имен/значений из cookie-наборов, которые мо — гут быть использованы сценариями на Web-странице. Прежде чем вы сможете использовать значение cookie-набора, вам потребуется извлечь значение из стро —

ки всех имеющихся имен и значений cookie-набора в свойстве document. cookie.

Глава 8. JavaScript 43 1





ПРАКТИКУМ

Приведенная ниже JavaScript-функция возвращает значение отдельного cookie — набора из свойства cookie объекта документа:

function cookieValue (FirstChar)

{

// Пары «имя/значение» cookie-набора в свойстве document. cookie

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

// точки с запятой после начала значения cookie-набора,

var LastChar = document. cookie. indexOf («;», FirstChar);

if (LastChar == -1)

LastChar = document. cookie. length;

return unescape(document. cookie. substring(FirstChar, LastChar));

}



Функция unescape () в последнем операторе функции cookieValue () преоб — разовывает управляющие последовательности в значении cookie-набора в соот — ветствующие им ASCII-символы. Вспомните: в предыдущем практикуме при сохра —

нении значения cookie-набора вы пользовались функцией escape() . В результате

браузер сохранил «kki@NVBizNet. com» В COOkie-фаЙле каК «kki%40NVBizNet. com».

Функция unescape( ) преобразовывает управляющую последовательность «%40″

обратно в символ @.

Прежде чем вы сможете вызвать функцию cookieValue о, вы должны узнать,

где в строке всех пар имен/значений cookie-набора в document. cooki e начинает —

ся значение требуемого cookie-набора. Следующая функция найдет первый сим — вол в значении cookie-набора, имя которого вы передадите ей в параметре

CookieName. Вызвав функцию cookieValue (), функция getCookieValue () вер — нет значение cookie-набора, соответствующее имени, которое вы передали ей в параметре CookieName:

function getCookieValue (CookieName)

{

CookieName = CookieName + «=»;

var NameLength = CookieName. length;

var CookieLength = document. cookie. length;

var FirstChar = 0;

var LastChar = 0;

while (FirstChar

{

LastChar = FirstChar + NameLength;

if (document. cookie. substring(FirstChar, LastChar) == CookieName)

return cookieValue (LastChar);

// Перейти на 1 символ за пробел между парами «имя/значение» cookie-набора

FirstChar = document. cookie. indexOf (» «/FirstChar) + 1;

if (FirstChar == 0) break;

}

return null;

}

Следовательно, чтобы извлечь значения cookie-набора из свойства

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

43 2 Глава 8. JavaScript





ЦИИ copkieValu e () И getCookieValu e () . Посл е ЭТОГО ВЫ СМОЖете ВСТавИТЬ СЦе —

нарий, аналогичный приведенному ниже, в тело Web-страницы, чтобы извлечь и отобразить имя, фамилию и адрес e-mail из cookie-набора, которые были сохра — нены в предыдущем практикуме (см. рис. 8.8).



Удаление cookie-набора из cookie-файла

Когда браузер просматривает cookie-файл в поисках cookie-наборов для добав — ления в свойство cooki e объекта документа текущей Web-страницы, он удаляет все cookie-наборы, срок действия которых истек. Помните: когда вы сохраняете cookie-набор, вы сохраняете дату истечения срока действия вместе с именем и значением cookie-набора. Поскольку каждый cookie-набор увеличивает размер cookie-файла и cookie-файл может содержать максимум 200 cookie-наборов на каж — дый домен, следует удалять cookie-наборы, которые больше вам не нужны. Посколь —

ку Web-браузер автоматически удаляет из cookie-файла cookie-наборы с истекшим сроком действия, просто установите дату истечения срока действия cookie-набора, который вы хотите удалить, равной дате и времени когда-нибудь в прошлом.



ПРАКТИКУМ

Объявив приведенную ниже функцию между начальным и конечным дескрипто- рами сценария ( ) в HTML-коде своей Web-страницы (пред — почтительно в заголовочном разделе), вы сможете вызывать функцию

deietecookie() всякий раз, когда вам понадобится удалить cookie-набор:

Глава 8. JavaScript 4 3 3





function DeleteCookie (CookieName)

{

document. cookie = CookieName + «=; expires=Thu, 01 Jan 1970 00:00:01 GMT»;

return;

}

Функция deieteCookie() «заканчивает» срок действия cookie-набора путем установки даты истечения срока действия cookie-набора равной самой ранней

применимой дате (одной секунде пополуночи 1 января 1970 года). Поскольку

сейчас правильное местное время на любом компьютере давно «перевалило» за 1

января 1970 года, вызов deietecookie() приведет к тому, что браузер удалит из cookie-файла тот cookie-набор, имя которого вы передадите функции в параметре CookieName. Предположим, например, вы ранее сохранили cookie-набор с име —

google.com bobrdobr.ru del.icio.us technorati.com linkstore.ru news2.ru rumarkz.ru memori.ru moemesto.ru

Оставить комментарий

Вы должны авторизоваться для отправки комментария.

Полезные ссылки
Случайные записи
  • 04.09.2011">FastStore Image Viewer
  • 09.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.162
  • 03.06.2010">Самоучитель по креативному веб-дизайну. Книга 3, стр.58
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.50
  • 09.10.2010">Разница между растровым и векторным изображением
  • 24.02.2011">Руководство по actionscript. часть 7, стр. 010
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 024
  • 04.06.2011">О дизайне веб-сайта
  • 22.01.2011">Руководство по actionscript. часть 1, стр. 111
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 044
  • 22.03.2011">Руководство по actionscript. часть 2, стр. 019
  • 10.05.2010">Самоучитель по креативному веб-дизайну. Книга 1, стр.89
  • 23.01.2011">Руководство по actionscript. часть 1, стр. 069
  • 25.02.2011">Руководство по actionscript. часть 6, стр. 103
  • 28.02.2011">Руководство по actionscript. часть 6, стр. 006
Опрос

Какие цвета вы предпочитаете?

View Results

Loading ... Loading ...