Web-инжиниринг

       

Cookie


Cookies

Волшебные ключики или Cookies не являются полями формы, но тем не менее, отойдя от строго рассмотрения иерархии объектов JavaScript, мы уделим им немного внимания, как одному из механизмов управления обменом данных. Основная функция Cookie - поддержка сеанса работы между клиентом(браузером) и сервером.

Cookie - это небольшой фрагмент текста, который передается от сервера браузеру и потом может быть возвращен обратно. Подробно о cookie можно прочитать в "Спецификация Cookie". Программа на JavaScript способна прочитать выставленное значение Cookie и даже изменить его. Для этой цели используют свойство объекта DOCUMENT - cookie:

<form>

<input type=button value="Показать Cookies" onClick="window.alert(window.document.cookie);">

</form>

В данном случае cookies отображаются в виде одной большой строки со множеством значений. Свойство cookies документа можно переопределить:

function asign()

{

document.cookie="n1=3";

window.alert(document.cookie);

}

...



<form>

<input type=button value="Изменить n1" onClick="asign()">

</form>

Как видно из примера программисту не нужно выделять cookie из строки. Браузер рассматривает cookies как ассоциированный массив(хеш) и изменяет значение cookie по имени "ключика".

Наконец, cookie можно удалить. Если быть более точным - деактивировать, указав время действие cookie:

function change_cookies()

{

a = new Array();

c = new Date();

a = document.cookie.split(';');

document.cookie=a[0]+"; expires="+c.toGMTString()+";"

window.alert(document.cookie);

}

...

<form>

<input type=button value="Чтобы не хранить этот хлам вечно" onClick="change_cookies()">

</form>

В данном случае мы гасим cookie за счет параметра expire(времени, до которого cookie живет). Так как мы берем текущее время, то cookie исчезает из списка "ключиков". Многократно нажимая на кнопку, можно удалить все cookies для данной страницы.






u="u686.25.spylog.com";d=document;nv=navigator;na=nv.appName;p=1; bv=Math.round(parseFloat(nv.appVersion)*100); n=(na.substring(0,2)=="Mi")?0:1;rn=Math.random();z="p="+p+"&rn="+rn;y=""; y+=""; y+="
"; y+=""; d.write(y);if(!n) { d.write("








Содержание раздела