Стандартный способ хранения пользовательских настроек на клиенте через веб-приложение - PullRequest
3 голосов
/ 21 марта 2012

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

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

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

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

Кто-нибудь согласен или имеет лучший способ?

Ответы [ 3 ]

5 голосов
/ 21 марта 2012

РЕДАКТИРУЙТЕ теперь, когда вы изменили вопрос с того момента, когда мы впервые писали ответы:

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

Вместо этого я хотел бы предложить, чтобы вы просто поместили объект предпочтений в javascript страницы следующим образом:

var userPref = {theme: "fun", permitContact: false, lastDisplay: "threaded"};

Затем вы можете получить доступ к значениям предпочтений через javascript с любой страницы с помощьюкод, подобный следующему:

if (userPref.lastDisplay == "threaded") {
    // do something
}

Старый ответ до того, как вопрос был отредактирован:

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

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

2 голосов
/ 21 марта 2012

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

  • пользователь может редактировать настройки вручную, поэтому убедитесь, что у вас нет таких вещей, как is_root=false без дополнительных проверок на стороне сервера.

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

Другая возможность состояла бы в том, чтобы обслуживать динамический JavaScript со встроенными настройками вместо статических файлов - вы могли бы обслуживать JavaScript так же, как и динамический HTML, но тогда вам нужно быть осторожным с кэшированием.

0 голосов
/ 21 марта 2012

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

Просто храните их на сервере.

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