我有一個更大的應用程序,我正在使用,但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 2009-06-22 12:05:41