Лучший способ хранить небольшие пользовательские настройки пользовательского интерфейса в веб-приложении? - PullRequest
32 голосов
/ 30 июня 2011

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

Возможные варианты, которые я могу придумать:

  1. Сохранение настроек JSON объекта пользовательского интерфейса в файле cookie.
  2. Использовать локальное хранилище HTML5 (нет опыта)
  3. Хранить в базе данных mySQL (не стремится хранить такие тривиальные данные в БД)

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

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

Ответы [ 4 ]

33 голосов
/ 30 июня 2011

Если он настолько мал, вам, вероятно, следует сохранить объект json параметров пользовательского интерфейса в вашей собственной базе данных.

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

Кроме того, пользователи смогут использовать настройки пользовательского интерфейса на разных компьютерах или в разных браузерах..

17 голосов
/ 30 июня 2011

Использовать локальное хранилище HTML5 очень просто:

localStorage.setItem('someName', 'savedData');

Когда вам нужно получить его позже, вы просто используете:

var data = localStorage.getItem('someName');

Использование HTML5 также имеет некоторый недостаток, я предлагаю вам определенно добавить поддержку старых браузеров через cookie и т. Д. Опять же, если вы хотите, чтобы у пользователя были одинаковые настройки независимо от того, откуда он входит, у вас другой вариант, чем использовать таблицу базы данных.

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

5 голосов
/ 30 июня 2011

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

Ответ на этот вопрос решает, хранить ли вы локально или на сервере.

Если это не требуется, тогда достаточно файла cookie или локального хранилища. HTML 5 локальное хранилище на самом деле не распространено (маленький старый вопрос).

Если вы хотите запомнить на разных машинах, база данных - единственный вариант.

3 голосов
/ 30 июня 2011

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

...