Сохранить состояние просмотра страницы в граалях - PullRequest
0 голосов
/ 27 октября 2011

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

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

Спасибо

Ответы [ 2 ]

0 голосов
/ 27 октября 2011

В некоторых местах параметры поиска должны быть сохранены. Либо на стороне сервера или клиента. На стороне сервера у вас есть только опции session или flash scope.

На стороне клиента вы можете сохранить эти значения в файле cookie. Для этого нужны некоторые кусочки JavaScript.

Однако теоретически браузер будет сохранять вручную измененные значения полей формы из коробки. Он идентифицирует поля формы по имени / идентификатору. Нет необходимости делать какие-либо программные вещи, за исключением случаев, когда вы загружаете некоторые части страницы через AJAX. Может быть, вы можете дважды проверить, что поля ввода имеют статические пары имя / идентификатор или у вас есть некоторые настройки meta / cache / html, которые запрещают такой механизм (двойная проверка, что ваша форма не имеет установленной настройки autocomplete="off". Это предотвратит браузер, чтобы заполнить поля формы.

Grails сама по себе не предлагает таких вещей, которые вам нужны, из коробки (и я не знаю, есть ли у других фреймворков - может быть, за исключением Seam, который имеет концепцию области разговора; но даже эта функция не будет работать из коробки, если пользователь использует кнопку возврата браузера). Самый простой способ - сделать свою страницу поиска кешируемой (для браузера, с помощью настроек HTTP-заголовков или мета-тегов), чтобы браузер не пытался перезагрузить страницу с сервера снова, если пользователь нажимает браузер Кнопка назад. И дважды проверьте настройку autocomplete="off".

0 голосов
/ 27 октября 2011

Всплывающее окно javascript с информацией об этом человеке вместо того, чтобы переносить его на другую страницу. В худшем случае установите для ссылки на человека значение _new, и это заставит открыть новое окно / вкладку браузера.

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