好吧,我很困惑GWTP中的“onBind”,“preparedFromRequest”,“onReveal”,“onReset”。我不知道在什么情况下调用这些方法。任何人都可以解释在GWTP中的“onBind”,“preparedFromRequest”,“onReveal”,“onReset”之间的行为和区别吗?
好吧,我得到Page1Presenter.java
(tokenName:page1
)具有以下代码:
@Override
protected void onBind(){
System.out.println("on bind");
}
@Override
protected void prepareFromRequest(PlaceRequest request){
System.out.println("prepared from request");
}
@Override
protected void onReveal(){
System.out.println("on reveal");
}
@Override
protected void onReset(){
System.out.println("on reset");
}
现在,我在浏览器中打开第一页,网址:abc.com/#page1;param=1
,然后打印出:
on bind prepared from request on reveal on reset
然后,我去abc.com/#page2
&然后按回来按钮,现在它打印出来:
prepared from request on reset
然后,更改参数不&进入abc.com/#page1;param=2
,它会显示:
prepared from request on reset
然后,我点击其他浏览器选项卡&点击返回包含URL abc.com/#page1;param=2
选项卡,然后什么都没有发生。我预计将会调用onReveal
。
此外,System.out.println();
是太简单了,所以我们不能看到preparedFromRequest
& onReset
之间的差异。
如果我们有很多复杂的代码&如果我们把这些代码在preparedFromRequest
,将其不同的表现,如果投入onReset
?
&它们在不同的浏览器中表现相同吗?
p是可见的。何时&在哪种情况下p可见?像你最小化浏览器? – Kiti