Изучаем HTML 5-Б. Лоусон, Р. Шарп - 2011 |
Страница 169 из 244 Обходные варианты Поскольку 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 значение в строку |