Являются ли файлы cookie единственным встроенным хранилищем между поддоменами? - PullRequest
7 голосов
/ 20 июня 2011

Файлы cookie хороши тем, что значение, записанное в website.com , можно использовать в www.website.com (www считается поддоменом no-www). Недостатком является то, что все значения файлов cookie отправляются вместе с каждым HTTP-запросом на сервер. Поэтому я ищу механизм локального хранения, доступный непосредственно для Javascript, который работает между доменами и не передается на сервер. Существует ли такой механизм? LocalStorage не работает с кросс-поддоменом, а Flash Cookies не будет работать на iPhone.

Ответы [ 2 ]

2 голосов
/ 20 июня 2011

Возможно, просто перенаправить website.com на www.website.com или наоборот? Кажется, это будет самое простое решение. http://www.scriptalicious.com/blog/2009/04/redirecting-www-to-non-www-using-htaccess/

1 голос
/ 27 июня 2011

Если у ваших пользователей есть действительная учетная запись, к которой они подключаются на вашем сервере, вы можете сохранить информацию на стороне сервера и просто добавить небольшой javascript на каждую страницу, для которой эти данные будут необходимы с соответствующими данными.Когда вы визуализируете страницу на стороне сервера, вы можете определить пользовательский объект в javascript с соответствующими атрибутами, установленными для значений данных, на которые затем можно ссылаться на стороне клиента.Таким образом, вы включаете только те данные, которые необходимы для данной страницы, одни и те же пользовательские данные доступны независимо от того, с какого компьютера пользователь входит в систему (не полагаясь на постоянные файлы cookie).Если большие фрагменты данных нужны только изредка, и вы не хотите включать их в страницу, если они необходимы, то сделайте эти фрагменты данных запрашиваемыми через ajax / json, чтобы их можно было получать только при необходимости.

Если вы все еще намереваетесь хранить его только локально, тогда файлы cookie или локальное хранилище HTML5 - это ваши единственные варианты, а файлы cookie будут вашим единственным кросс-браузерным вариантом, охватывающим все используемые браузеры.В дополнение к сложности реализации, вы можете объединить ряд предложений:

  1. Всегда перенаправлять на www.domain.com, чтобы все действия пользователя были в одном домене.
  2. Использовать локальное хранилище HTML5, когда оно доступно (перенаправление на шаге 1 предотвращает блокировку субдомена).
  3. Возврат к хранилищу файлов cookie, когда локальное хранилище HTML5 недоступно.

Можно предположительно написать или найти абстракцию для локального хранилища HTML5 и файлов cookie, чтобы 99% кода могли быть независимыми от того, какой механизм хранилища фактически использовался.Похоже, что есть некоторые плагины jQuery, которые делают именно это.

...