@greck10

Изменение вида каталога «на лету» заменой класса. Как сохранить?

Здравствуйте!

Есть каталог товаров, внешний вид которого можно изменить без перезагрузки страницы, изменением одного класса css (галерея, список, сетка). Но при перелистывании страниц, или изменении порядка сортировки или включении фильтров страница каталога перегружается и выбранный вид не сохраняется.

Сейчас использую cookie js для хранения переменной, определяющей внешний вид каталога. Как вариант решения, думаю можно хранить эту переменную и в $_SESSION.

Кажется, что проще и правильнее всего было бы просто добавлять в тег a href="" на странице соответствующие переменные, одновременно с изменением класса. Но тут нужно отследить, есть ли уже переменные в GET запросе или нет (что бы выбрать что добавлять: ?gallery или &gallery), а значит тоже дополнительное усложнение и не все так просто.

В общем, все варианты мне не нравятся своей громоздкостью. Как правильно сделать, посоветуйте?
  • Вопрос задан
  • 175 просмотров
Пригласить эксперта
Ответы на вопрос 3
petyagrill
@petyagrill
Была у меня похожая задача, делал через cookie js.
Выбор как минимум хорош тем что после посещения посетителем сайта еще раз ему выдача будет показана в удобном для него формате, ибо иногда напрягает при повторном посещении опять менять формат вывода под себя
Ответ написан
Комментировать
wladyspb
@wladyspb
Программист
Сессии обычно используются для хранения информации, которая должна быть привязана к юзеру, но которую нужно защитить от просмотра или изменения.

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

Плюс, сессии ограничены по времени, а куки с настройками можно сохранить на разумный период(неделя, месяц) чтобы пользователь который сколь-либо регулярно заходит на сайт, всегда видел свои настройки темы. Ещё более капитально - хранить их в базе для зарегистрированных пользователей, а чтобы не дёргать базу каждый раз - хранить в куках опять же)

Кроме того, всё что в сессии - грузит ваш сервер, миллион пользователей - миллион файлов с массивом настроек. Не стоит злоупотреблять этим хранилищем. От нескольких переменных или массивов не лопнет конечно, но не стоит брать за практику массово хранить в сессии сериализованные объекты, большие массивы информации или статичные для всех юзеров данные.

PS: Насчёт аргумента в ссылке - самая плохая идея... Ссылку могут послать другу, это люди будут произвольно передавать друг другу разные варианты оформления?)
Ответ написан
Комментировать
paulradzkov
@paulradzkov
Дизайнер, верстальщик, начальник отдела UI
Можно сохранять состояние настроек в local-storage
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы