2014-02-27 37 views
2

好吧,我很困惑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

&它们在不同的浏览器中表现相同吗?

回答

相关问题