Ajax обновил пользовательский интерфейс и кнопку «Назад» - PullRequest
6 голосов
/ 25 мая 2010

Сценарий:

  • Страница загружается со сложным пользовательским интерфейсом.
  • Пользователь выполняет некоторые действия, которые изменяют данные с помощью обратных вызовов Ajax, изменения отражаются в пользовательском интерфейсе с помощью манипулирования DOM (например, с помощью jQuery).
  • Пользователь щелкает ссылку, чтобы перейти на другую страницу (например, страницу с подробностями).
  • Пользователь нажимает кнопку «Назад», чтобы вернуться на исходную страницу пользовательского интерфейса.
  • Пользователь видит устаревшую информацию - похоже, что сделанные им изменения (на шаге 2) никогда не происходили.

Как вы справляетесь с этой ситуацией?

Ответы [ 4 ]

2 голосов
/ 25 мая 2010

Вы можете принудительно обновить страницу при нажатии кнопки «Назад», которая затем извлечет обновленные данные с сервера.

<META http-equiv="Cache-Control" content="no-cache">
<META http-equiv="Pragma" content="no-cache">
<META http-equiv="Expires" content="-1">

Вы также можете взглянуть на Real Simple History и посмотреть, сможете ли вы воспользоваться их приемами для использования кнопки Назад.

2 голосов
/ 25 мая 2010

Cookies. Единственный способ сохранить информацию после того, как пользователь покидает страницу и возвращается, это с помощью куки.

Лучший способ сделать это -

0. user goes to your page 
1. A page is loaded with complex UI based on what is saved in the users cookies (default if no cookie)
2. user does some actions, which are saved into the cookie
3. user goes to another page
1 голос
/ 25 мая 2010

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

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

Метрополис

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

Печенье не единственный способ. Подумайте о плагине для барбекю. Смотри http://mattfrear.com/2010/03/20/enabling-browser-back-button-on-cascading-dropdowns-with-jquery-bbq-plugin/

В основном, он использует #variables, добавленные в строку запроса, чтобы обмануть браузер, заставляя его думать, что это новая страница, поэтому, если вы обновите или вернетесь на страницу, переменная # заполнит элементы управления.

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