Ich habe eine größere Anwendung, mit der ich arbeite, aber die GWT History documentation hat ein einfaches Beispiel, das das Problem demonstriert. Das Beispiel wird der Einfachheit halber kopiert:Wie erstellt man den GWT History Stack neu?
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());
}
}
Das Problem ist, dass, wenn Sie die Anwendung aktualisieren, wird die Geschichte Stapel weggeblasen. Wie bewahrt man den Verlauf auf, so dass, wenn der Benutzer die Seite aktualisiert, der Zurück-Knopf immer noch nützlich ist?
Ja, die Geschichte Rahmen an Ort und Stelle war. Es stellt sich heraus, dass dies kein technisches Problem unter meiner Kontrolle ist und ich fühle mich jetzt ziemlich albern zu fragen. Ein paar Dinge waren im Spiel. Zuerst verliert der GWT Browser den Verlauf beim Refresh (manchmal vergesse ich zu kompilieren). Zweitens verhält sich IE seltsam in Bezug auf die Geschichte. Drittens haben einige Entwickler nicht richtig Geschichtsmarker auf den Stapel geschoben. Vielen Dank für einen Blick auf das für mich, Entschuldigung für den Ärger. – Michael