Internet Explorer позволяет сохранять информацию на стороне клиента средства_ ми DHTML. Для доступа к этому механизму необходимо заставить элемент (та_ кой как <div>) вести себя особым образом. Одно из таких средств – CSS:
482 Глава 19. Cookies и механизм сохранения данных на стороне клиента
<!__ Данная таблица стилей определяет класс с именем "persistent" __>
<!__ Данный элемент <div> является членом этого класса __>
<div id="memory" class="persistent"></div>
Поскольку атрибут behavior не предусматривается стандартами CSS, остальные броузеры просто игнорируют его. Атрибут behavior стиля элемента можно также установить из JavaScript_сценария:
Когда HTML_элементу назначается поведение «userData»1, для этого элемента становятся доступными новые методы (определяемые атрибутом behavior). Что_ бы сохранить данные в постоянном хранилище, необходимо установить значе_ ния атрибутов элемента методом setAttribute(), а затем сохранить эти атрибуты вызовом метода save():
var memory = document.getElementById("memory"); // Получить ссылку на элемент,
Обратите внимание: метод save() принимает строковый аргумент – это имя (про_ извольное), под которым будут сохраняться данные. Чтобы потом прочитать эти данные, необходимо использовать то же самое имя.
Для данных, сохраняемых с помощью механизмов Internet Explorer, можно оп_ ределить дату окончания срока действия точно так же, как и для cookie_файла. Для этого перед вызовом метода save() достаточно установить свойство expires. В это свойство должна быть записана строка в той же форме, в которой она воз_ вращается методом Date.toUTCString(). Например, чтобы определить срок дейст_ вия в 10 дней, начиная от текущего момента, в предыдущий фрагмент нужно до_ бавить следующие строки:
var
now = (new
Date()).getTime();
// Текущий
момент
// в миллисекундах
var
expires = now + 10 * 24 * 60 * 60 * 1000;
// 10 суток от текущего
//
момента
в миллисекундах
memory.expires
= (new Date(expires)).toUTCString(); //
Преобразовать в строку
Чтобы прочитать сохраненные ранее данные, нужно выполнить те же шаги в об_ ратном порядке: вызвать метод load(), чтобы загрузить данные, а затем вызовом getAttribute() получить значения атрибутов:
var memory = document.getElementById("memory");
// Получить ссылку на
элемент,
//
сохраняющий данные
memory.load("myPersistentData");
//
Прочитать данные по имени
1 Поведение userData – лишь один из четырех доступных в Internet Explorer вари_ антов поведения, связанных с сохранением данных на стороне клиента. Подроб_ ное описание механизмов сохранения информации в Internet Explorer вы найдете по адресу: http://msdn.microsoft.com/workshop/author/persistence/overview.asp.