Использование window.name в качестве локального кэша данных в веб-браузерах - PullRequest
14 голосов
/ 10 января 2010

Я читал о файлах cookie и других связанных с ними параметрах хранения на стороне клиента и читал об использовании window.name в качестве своего рода кэша данных:

http://en.wikipedia.org/wiki/HTTP_cookie#window.name

Хотя у него, конечно, есть вещи, которые делают его менее желательным - и я не буду приукрашивать его, я определенно взломаю в самом истинном смысле этого слова - это выглядит многообещающе. Мне нужно хранить около 10 КБ JSON в качестве клиентского кэша, сейчас я отправляю его вместе со страницей, и когда я читаю об этом, кажется, что он действительно может соответствовать моим потребностям и сократить трафик.

Мне любопытно посмотреть, реализовал ли кто-нибудь это и какой совет вы могли бы дать. Ловушки? Рекомендации? Различия между браузерами? Какой-то случай использования, который был бы действительно плох?

За

  • Локальное хранилище
  • Доступно практически во всех браузерах, поддерживающих javascript

Против

  • Поддерживает только строки
  • XSS Issues
  • window.name отравление
  • Утечка информации на другие сайты

Альтернатива

Ответы [ 2 ]

5 голосов
/ 12 января 2010

Существует множество способов хранения локальных данных, Flash LSO, локальное хранилище HTML 5, файлы cookie. Google Gears. Взгляните на PersistJS , клиентскую библиотеку js, которая просто сделает это.

Этот пост в Ajaxian подробно описывает это.

2 голосов
/ 10 января 2010

Это, кажется, впервые реализовано здесь: http://www.thomasfrank.se/sessionvars.html.

Однако, если эта техника сработает, я бы поспорил на то, что браузеры в конечном итоге ее решат из-за ее наследственной уязвимости к XSS.

Более долгосрочное решение, вероятно, будет: http://en.wikipedia.org/wiki/DOM_storage, которое выросло из спецификации HTML 5 (самый большой недостаток - отсутствие обратной совместимости для браузеров до IE 8).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...