Welikeit.Ru | |
|
| |
|
|
HTML - Статьи - Cookie - это просто!Наверное, вы уже успели
заметить, что на сайте установлена система отправки сообщений об ошибках Orfo. Я
сначала долго размышлял о том, каким образом известить пользователя о наличии
системы на странице. Первая мысль – разместить информацию на главной странице. В
общем-то метод показался неплохим, но что если пользователь попадет на сайт в
обход главной страницы, скажем, из поиска? В конце-концов, изучив проблему, я
пришел к выводу, что без cookie и программирования мне не
обойтись…Cookie – что это такое? Это небольшие блоки текстовой
информации, которые Web-сервер посылает браузеру, а браузер возвращает
неизмененными, когда позже посещает тот же самый Web-сайт или домен. Позволяя
серверу читать информацию, которую он послал клиенту раньше, сайт может
предоставлять посетителям некоторые услуги, например, представлять сайт в том
виде, в котором посетитель его ранее настроил, или разрешать идентифицированным
посетителям вход на сайт без ввода пароля. Это не вирус, они не могут ничего
прочитать с жесткого диска и не могут переслать данные.Рассмотрим
алгоритм решения задачи.если (посетитель впервые на сайте или прошло две
недели с момента последнего посещения)
отобразить сообщениеВот так я представил для себя эту проблему. Обратите внимание – пункты в "если" объединены. Связано это с тем, что в любой из данных ситуации cookie на компьютере пользователя не будет. Почему, можно понять при изучении спецификации – дело в том, что при создании cookie необходимо задать такой параметр, как срок актуальности, после которого cookie будет уже недействителен.Итак, задача сводится к таким действиям:проверить наличие cookie если не существует вывести сообщение создать, установив срок актуальности две неделиПодробнее о том, как можно проверить наличие cookie. Поскольку как таковой функции проверки в Java Script, а я собирался использовать именно его, нет, то выход из ситуации таков – попытаться его прочитать. Если возникнет ошибка – значит его нет.Итак… <SCRIPT LANGUAGE="JavaScript">
<!-- // name - имя cookie // value - значение cookie // [expires] - дата окончания действия cookie (по умолчанию - конец текущей // сессии) // [path] - путь, где cookie верны (по умолчанию - путь к текущему документу) // [domain] - домен, где cookie верны (по умолчанию - домен вызываемого // документа) // [secure] - бинарная переменная, показывающая, что cookie должны // передаваться через защищённое соединение // * по умолчанию аргументу присвоено значение null // * нулевое значение не требуется присваивать пропущенным переменным function setCookie(name, value, expires, path, domain, secure) { var curCookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : ""); document.cookie = curCookie; } // name - имя cookie // * строка возврата содержит значения необходимого cookie или null при // его отсутствии function getCookie(name) { var dc = document.cookie; var prefix = name + "="; var begin = dc.indexOf("; " + prefix); if (begin == -1) { begin = dc.indexOf(prefix); if (begin != 0) return null; } else begin += 2; var end = document.cookie.indexOf(";", begin); if (end == -1) end = dc.length; return unescape(dc.substring(begin + prefix.length, end)); } // --> </SCRIPT> Теперь у нас есть
функции для работы с cookie. Работаем…Вот так проблема была мной решена,
единственное, что я сделал еще – оформил нахождение cookie отдельной процедурой
и затем выделил необходимый скрипт в отдельный файл, оставив в коде страницы
только вызов проверяющей функции.Немного о реальном применении cookies.
Яркий пример – сайт GameDev.ru. Здесь мы можем установить понравившийся нам стиль
отображения информации, и когда мы придем на сайт в следующий раз, мы его в этом
стиле и увидим.И еще чуть-чуть об удалении…Возможности
удалить cookie вообще-то не имеется, но… Мы можем удалить их косвенно,
устанавливая дату истечения срока в прошлом.
<SCRIPT LANGUAGE="JavaScript">
<!-- // * путь и домен по умолчанию присвоены в null и не требуется // присваивать этого значения, т.к. cookie может быть прочитан // только тем доменом, который его создал function deleteCookie(name, path, domain) { if (getCookie(name)) { document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; } } // --> </SCRIPT> Вот и все. Как вы
видите, в cookie и работе с ними нет ничего сложного. Между тем, это довольно
мощное средство хранения информации, которое может использоваться независимо от
поддержки сервером каких-либо определенных технологий. Вот почему их применение
становится уже почти повсеместным.P.S. Кстати, применив вот
такую инструкцию, мы можем создать персональный счетчик посещений страницы
…
if (!visits) { visits = 1; alert("Вы здесь впервые."); } else { // увеличить счётчик visits = parseInt(visits) + 1; alert("Вы здесь " + visits + "-й раз."); } // сохранить новое значение cookie setCookie("was_visited", visits, now); Источник: www.protoplex.ru
|
|
Copyright © 2006-09.
| |