Использование window.name в качестве локального кэша данных в веб-браузерах
Я читал о файлах cookie и других связанных с ним вариантах хранилища на стороне клиента и читал об использовании window.name в качестве кеша данных:
http://en.wikipedia.org/wiki/HTTP_cookie#window.name
В то время как у него, безусловно, есть вещи, которые делают его менее желательным - и я не буду сахара его пальто, это, безусловно, взломать в самом истинном смысле этого слова - это выглядит многообещающим. Мне нужно хранить около 10 тыс. JSON в качестве клиентского кеша, сейчас я отправляю его со страницей, и когда я читаю об этом, похоже, что он может действительно соответствовать моим потребностям и уменьшать трафик.
Мне любопытно узнать, осуществил ли кто-нибудь это, и какой совет вы могли бы дать. Ловушки? Рекомендации? Различия между браузерами? Какой-то пример использования, который будет очень плохим?
Pros
- Локальное хранилище
- Доступно в основном для каждого браузера, поддерживающего javascript
против
- Поддерживает только строки
- Проблемы с XSS
- Отравление окном.
- утечка информации на другие сайты
Альтернативы
Ответы
Ответ 1
Существует множество способов хранения локальных данных, Flash LSO, локального хранилища HTML 5, файлов cookie. Google gears.
Посмотрите PersistJS, клиентскую библиотеку js, которая просто сделает это.
Этот пост в Ajaxian уточняет немного о нем.
Ответ 2
Это, по-видимому, впервые реализовано здесь: http://www.thomasfrank.se/sessionvars.html.
Однако, если этот метод взлетит, я бы поставил деньги на то, что браузеры в конечном итоге рухнут на него из-за его наследующей уязвимости к XSS.
Более долгосрочное решение, скорее всего, будет выглядеть следующим образом: http://en.wikipedia.org/wiki/DOM_storage, который вырос из спецификации HTML 5 (самым большим недостатком является отсутствие обратной совместимости для браузеров до IE 8).