Хранение постоянных данных в браузере - PullRequest
3 голосов
/ 24 октября 2009

Для моего веб-приложения мне нужно хранить входные данные формы, охватывающие несколько страниц, пока я, наконец, не обработаю / не манипулирую ими для получения некоторых результатов (в основном это форматирование введенных данных и представление их в некотором макете). Варианты, которые я думаю, у меня есть -

  1. Продолжайте отправлять пользовательские входные данные на сервер, сохраняйте их там в некоторой базе данных, выполняйте только последние манипуляции там и показывайте результат.

  2. Сохраняйте входные данные в хранилище браузера по мере того, как пользователь заполняет формы, и, наконец, используйте эти сохраненные данные для манипулирования и отображения результатов.

Я очень хочу использовать второй метод, и, возможно, возможный способ - использование файлов cookie, но я боюсь, что я могу просто достичь верхнего предела хранения данных cookie. Я также открыт для понимания достоинств первого метода или любого третьего метода.

спасибо.

Ответы [ 5 ]

5 голосов
/ 24 октября 2009

Использование веб-хранилища (вы можете хранить на стороне клиента около 5 МБ текстовых или двоичных данных)

Демонстрация Firefox: http://codebase.es/test/webstorage.html

DOM Storage поддерживается в следующих веб-браузерах:

  • Internet Explorer 8
  • Firefox 2 для sessionStorage, 3.5 для localStorage
  • Safari 4

Просто Google для sessionStorage и localStorage объектов.

Также современные браузеры webkit поддерживают sql на стороне клиента.

Edit:
Я не уверен в том, что вы хотите сделать, но с помощью AJAX вы можете хранить все в переменных javascript, а серверные базы данных или сессии - хороший выбор.

3 голосов
/ 24 октября 2009

Превышение лимита хранения cookie может указывать на то, что вы пытаетесь сохранить слишком много на стороне клиента. Возможно, было бы разумно хранить его на стороне сервера, во время сеанса. Затем ключ к сеансу можно сохранить в файле cookie.

Альтернативный метод состоит в том, чтобы запросы не занимали несколько страниц, а просто сохраняли данные на стороне клиента не в виде файла cookie, а в виде различных полей формы и / или текстовых полей (они могут быть скрыты). Достоинство такого метода в том, что он не достигает лимита cookie, как у вас. Это также делает ваш серверный код проще / чище, так как он не должен отслеживать состояние (что вам всегда нужно делать, если оно распространяется по страницам, и, следовательно, причина, по которой вы в первую очередь превышаете лимит файлов cookie) .

1 голос
/ 24 октября 2009

Вы можете использовать небольшой Flash-ролик для хранения некоторых данных через Api общей памяти Flash или посмотреть Google Gears .
Возможно также учтите, что каждый байт, который вы храните в cookie, должен передаваться каждый раз, когда ваш веб-сайт делает запрос на сервер.

0 голосов
/ 24 октября 2009

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

0 голосов
/ 24 октября 2009

Как правило, файлы cookie имеют максимальный размер 4 КБ, поэтому вы можете хранить там немало данных.

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

Вы не сказали, какую платформу вы используете. Spring Webflow выполняет именно ту обработку форм, которую вы хотите: http://www.springsource.org/webflow

Даже если вы не используете Java, вы можете использовать некоторые принципы.

Редактировать. Еще один недостаток больших / сложных постоянных файлов cookie заключается в том, что вы должны убедиться, что любой новый развернутый вами код обратно совместим со всеми файлами cookie, которые находятся на свободе.

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