Управление историей (кнопка «Обновить») - PullRequest
3 голосов
/ 06 августа 2010

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

Ответы [ 4 ]

1 голос
/ 18 августа 2010

Вы можете создать фрагмент URL для кодирования ваших данных.

String location = "ny";History.newItem ("location =" + location);

приведет к фрагменту URL-адреса www.example.com # location = ny

Затем, если браузер обновлен, вы можете декодироватьфрагмент URL-адреса и определите, что местоположение является ny.

Для нескольких параметров вы можете создать сложный фрагмент и проанализировать его.

History.newItem ("start =" + startLocation + "& end =" + endLocation);Тогда URL будет выглядеть так: www.example.com # start = newyork & end = boston

1 голос
/ 09 августа 2010

Класс GWT History нельзя использовать для управления обновлением страницы (только назад / вперед).

Нажатие на кнопку обновления отправляет запрос на сервер, и состояние приложения перезагружается с сервера.Это все.Вы должны иметь дело с этим.

Если вы не хотите потерять свои данные, вам нужно найти способ сохранить их на сервере, когда это необходимо.

1 голос
/ 10 августа 2010

Если у ваших пользователей есть современные браузеры, вы можете использовать функцию HTMLS localStorage для хранения данных в браузере между обновлениями страницы.

Проверить этот поток для поддерживаемого браузера.

0 голосов
/ 06 августа 2010

Основная идея заключается в сохранении некоторого состояния во фрагменте URL (часть URL после #) - например, your-site.com/app#page-1

Чтобы прослушать изменения вфрагмент, используйте класс GWT History.Фрагмент изменится, когда пользователь переместится назад или вперед или обновит страницу.

Таким образом, ваше приложение может выполнять разные действия, если URL имеет #page-1 против #page-2 и т. Д.

Более обобщенное и масштабируемое решение для этого - что-то вроде gwt-platform Place архитектура (наряду с Presenters, которые также являются хорошей идеей для больших приложений)

...