Использование 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).