【发布时间】:2013-01-25 17:06:41
【问题描述】:
我对我找到的 GWT 历史机制的例子有点困惑。
查看并运行示例GWT History 似乎不是很好。
历史通常被解释为应用程序更改的结果。
该示例存在多个问题:
-
初始状态也是空token和token“page0”
--> “历史” Back 在“离开应用程序”前两次显示同一页面
-
历史和状态以某种方式间接同步。
- 选项卡选择会导致选择事件,该事件会设置一个新标记。设置令牌会导致 历史值更改,再次选择相同的选项卡 (?)。这种模式有点令人费解。
换个角度看问题会不会这么错?
我认为总是根据历史令牌更改状态会更干净。
在这种情况下,ValueChange 将实现“状态渲染”。想要改变状态的 Button 不会直接使用History.newItem() 方法来改变状态,并使用valueChange 方法间接改变状态。
例如
public void onValueChange(ValueChangeEvent<String> event) {
String token = event.getValue();
if(token.isEmpty()){
show("welcome");
}else if(token.equals("registration")){
show(token);
}
}
还有一个想要显示注册的按钮:
welcome = new Button("Registration", new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
History.newItem("registration");
}
});
这以某种方式使用历史来驱动应用程序状态。
这有什么问题,为什么到处都是反其道而行之?
【问题讨论】:
标签: java gwt browser-history gwt-history