У меня есть большое приложение, с которым я работаю, но у GWT History documentation есть простой пример, демонстрирующий проблему. Пример копируется для удобства:Как вы восстанавливаете стек истории GWT?
public class HistoryTest implements EntryPoint, ValueChangeHandler
{
private Label lbl = new Label();
public void onModuleLoad()
{
Hyperlink link0 = new Hyperlink("link to foo", "foo");
Hyperlink link1 = new Hyperlink("link to bar", "bar");
Hyperlink link2 = new Hyperlink("link to baz", "baz");
String initToken = History.getToken();
if (initToken.length() == 0)
{
History.newItem("baz");
}
// Add widgets to the root panel.
VerticalPanel panel = new VerticalPanel();
panel.add(lbl);
panel.add(link0);
panel.add(link1);
panel.add(link2);
RootPanel.get().add(panel);
History.addValueChangeHandler(this); // Add history listener
History.fireCurrentHistoryState();
}
@Override
public void onValueChange(ValueChangeEvent event)
{
lbl.setText("The current history token is: " + event.getValue());
}
}
Проблема заключается в том, что если вы обновите приложение, стек истории получает сдувается. Как сохранить историю, чтобы, если пользователь обновляет страницу, кнопка «Назад» по-прежнему полезна?
Да, история рама была на месте. Оказывается, это не технический вопрос под моим контролем, и теперь я чувствую себя довольно глупо, чтобы спросить. Несколько вещей были в игре. Во-первых, браузер GWT теряет историю при обновлении (иногда я забываю скомпилировать). Во-вторых, IE действует странно в отношении истории. В-третьих, несколько разработчиков не выбрасывали токены истории в стек. Спасибо, что посмотрели на это для меня, извините за неприятности. – Michael