Управление историей (кнопка "Обновить")

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

4 ответа

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

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

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

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

Проверьте эту ветку на поддерживаемый браузер.

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

String location = "ny"; History.newItem ("местоположение ="+ местоположение);

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

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

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

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

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

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

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

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

Другие вопросы по тегам