Как сделать смену оформления на сайте?
К примеру, раскрывается список доступных тем, юзер выбирает одну и она меняется, и не слетает у него. Подскажите, как это реализовать?
Можно в базе хранить (в данных о юзере), выбранную им тему. и когда он заходит на сайт автоматически подгружать соответствующие стили (или что там у вас). А выбор темы редактировать в профиле.
Не вариант, т.к. LocalStorage хранит данные локально. Получится, что пользатель зайдет на сайт, например, с стационарного компа, выберет тему, а потом на мобильном у него опять же будет дефолтовая тема, пока он ее снова не сменит. Получается сколько устройств, столько раз и менять тему под себя. А если он инкогнито зайдет в браузер? Я считаю, что лучше это хранить в базе, как предлагает Сергей Сунцев
Александр: ну тогда лучше использовать связку двусторонней синхронизации.
Зашёл как гость и сменил тему - храним в LocalStorage,
Авторизовался как пользователь - копируем на сервер настройку: ID-темы и ID-устройства, привязанные к учетной записи.
Зашёл как гость с другого устройства и сменил тему - также храним в LocalStorage.
Авторизовался как пользователь с другого устройства - отображаем, что в аккаунте (и/или в LocalStorage) есть выбранные(существующие) темы.
Т.е. объединяем (merge) темы из LocalStorage и профиля.
Если их менее одной - устанавливаем сразу нужную.
Если больше - задаём вопрос: " (картинки-превью тем).... Для смены темы для этого устройства выберите предпочитаемую тему из списка и нажмите ОК".
xmoonlight, согласен с Вами, отличное решение. Теперь для Александр есть полностью алгоритм реализации. Хотя я бы не сохранял ID-устройства, только - ID-темы, функционал был бы проще как для разработчика, так и пользователя. Но это уже по выбору Александр.