J'ai une application plus grande avec laquelle je travaille mais le GWT History documentation a un exemple simple qui démontre le problème. L'exemple est copiée pour des raisons pratiques:Comment reconstruisez-vous la pile GWT History?
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());
}
}
Le problème est que si vous actualisez l'application, la pile de l'histoire s'époustouflé. Comment préserver l'historique de sorte que si l'utilisateur actualise la page, le bouton de retour est toujours utile?
Oui, le cadre de l'histoire était en place. Il s'avère que ce n'est pas un problème technique sous mon contrôle et je me sens plutôt bête maintenant de demander. Quelques choses étaient en jeu. Premièrement, le navigateur GWT perd l'historique à l'actualisation (parfois j'oublie de compiler). Deuxièmement, IE agit étrangement en ce qui concerne l'histoire. Troisièmement, quelques développeurs ne poussaient pas correctement les jetons d'histoire sur la pile. Merci d'avoir jeté un coup d'oeil à ceci pour moi, désolé pour le problème. – Michael