例如,我的 gwt-app 包含两个视图,并通过 appController().goTo(place) 从 view1 导航到 view2。ClientFactory 持有视图对象。
ClientFactoryImpl implements ClientFactory{
public View1 getView1(){
if(view1 == null){
view1 = new ViewImpl1();
}
return view1;
}
public View2 getView2(){
if(view2 == null){
view2 = new ViewImpl2();
}
return view2;
}
}
view1 的所有 dom 元素都在浏览器中消失,它会加载 view2 的新 dom 元素。如果我现在在 view2 上并且我按下后退按钮,它将返回到 view1 并且 view1 具有与以前相同的状态。我的问题是导航到 view2 后 view1 会发生什么。view1 的所有这些 DOM 元素(如按钮、列表等)会发生什么情况。他们在哪里?它说创建 DOM 元素很昂贵,但是当我导航回 view1 时,必须再次将 view1 的 DOM 元素呈现到 DOM 浏览器中,或者我理解错了?导航后所有这些小部件(位于最后的 DOM 元素)在后台会发生什么,以及它们如何在导航返回后返回到 dom。如果每次 ClientFactory 都会返回 View Object 的新实例,那么区别在哪里?请帮忙!
对不起我的英语不好,希望我的问题很清楚。