Изучаем HTML 5-Б. Лоусон, Р. Шарп - 2011

Печать

Обходные варианты

Поскольку API хранилища устроен относительно просто, его функциональность можно воспроизвести с помощью JavaScript — на случай, если API хранилища окажется недоступным.

Для localStorage можно использовать файлы cookie, а для sessionStorage — трюк со свойством имени объекта window. В следующем фрагменте кода показано, как воспроизвести функциональность sessionStorage (и гарантировать, что данные будут доступны только текущему окну, а не «протекут» в другие, как бывает с файлами cookie), вручную реализовав каждый из методов API хранилища. Обратите внимание, что в коде подразумевается, что в вашем браузере есть поддержка JSON — либо с помощью стандартных методов, либо через библиотеку Дугласа Крокфорда.

if (typeof sessionStorage === 'undefined') { sessionStorage = (function () {

var data = window.top.name ? JSON. -i parse (window. top. name) {};

return {

clear:function () { data = {}; window.top.name =

Ь

getltem:function (key) {

return data[key] || null;

},

key:function (i) {

// не идеально, однако работает

var ctr = 0;

for (var k in data) {

if (ctr == i) return k else ctr++;

}

},

removeitem:function (key) { delete data[key]; window.top.name = -n JSON. stringify (data) ;

},

setltem:function (key, value) {

data[key] = value+'' П заносит

-i значение в строку