


userData behavior. Клиентские хранилища. Технологии будущего. Оптимизация структуры веб-страниц
userData behavior
Flash Local Shared Object
WHATWG DB Backend (openDatabase)
globalStorage и localStorage
Google Gears
Библиотеки для работы с клиентскими хранилищами
Резюме
Компания Microsoft, которая первой начала осваивать веб-приложения в том смысле, в котором мы сейчас используем этот термин, довольно давно предложила программистам механизм для сохранения более существенных объёмов данных на компьютере пользователя.
Уже в Internet Explorer 5 появился так называемый userData behavior, собственное расширение Microsoft, которое позволяло хранить до 128КБ данных в одной записи,
общим объёмом до 1МБ, причём в интранете лимит ещ? более отодвигался —512КБ и 10МБ.
API, по нынешним временам, нельзя назвать удобным, но тогда это было частью интересной идеологии behavior, позволяющей разделить данные и логику.
Данные хранятся в DOM-элементе, у которого, посредством CSS, указан behavior userData:
function IEStorage (storagename) { this.storagename = storagename var el = document.createElement('div'); el.setAttribute('id', 'ourstore-' + storagename); el.style.display = 'none'; el.addBehavior('#default#userData'); document.body.appendChild(el); this.storage = el;
this.get = function (name) { this.storage.load(this.storagename); return this.storage.getAttribute(name); }
this.set = function (name, value) { this.storage.setAttribute(name, value); this.storage.save(this.storagename) }
this.del = function (name) { this.storage.removeAttribute(name); this.storage.save(this.storagename); } }
Как видно, наш небольшой класс имеет четыре метода: первый создаёт и инициализирует хранилище, три остальных позволяют работать с его значениями — читать, писать и удалять их.
Особенность этого хранилища — можно установить дату устаревания всех его элементов, удалены они будут при вызове load:
var time = new Date(); time.setHours(time.getHours() + 1); this.storage.expires = time.toUTCString(); // через час данные будут удалены