2014-02-27 52 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

&它們在不同的瀏覽器中表現相同嗎?

回答

相關問題