Проблема сеанса с несколькими вкладками - PullRequest
1 голос
/ 13 июля 2011

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

Я не хочу передавать все параметры поиска для каждой ссылки (неверные URL), поэтому я храню все эти данные в сеансе. Это отлично работает, но есть одна проблема:

Пользователь открывает поиск и фильтрует по «size = big», затем открывает новую вкладку и меняет фильтр на «size = small». Теперь в его сеансе есть "size = small". Поэтому, если он снова переключается на свою первую вкладку и нажимает там «страницу 2», он видит вторую страницу, но не для «size = big», как он ожидал, а для «size = small».

Есть ли хороший способ исправить это, не передавая все переменные (многие!) Постоянно?

Ответы [ 2 ]

2 голосов
/ 13 июля 2011

Я бы настоятельно рекомендовал поставить поиск по вашей ссылке.Это может сделать ваши ссылки менее «красивыми», но я ненавижу , когда не могу отправить результат поиска другу, просто отправив ссылку.

Но чтобы ответить на ваш вопрос:Положите search_id в каждой форме, которая добавляется к URL.Затем сохраните поиск в сеансе для этого конкретного search_id.Когда пользователь обновляет страницу, вы можете проверить, передаются ли переменные поиска POST или есть ли они сохраненные в сеансе для этого конкретного search_id.

0 голосов
/ 13 июля 2011

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

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