当我在 Eclipse 中创建时,没有代码拆分选项PresenterWidget,所以我假设我的PresenterWidgetor DialogBox(在 中启动HeaderPresenter)将在HeaderPresenter调用时下载。让我们看看这段代码HeaderPresenter:
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
MyDialogBox myD=new MyDialogBox(); ///There a lot of Gui (button, grid, css...) on this dialogbox
myD.show();
}
});
所以,我的第一个问题是:
MyDialogBox1,当用户访问页面时,webapp 会下载所有的 GUIHeader吗?
2,假设用户Header在同一个浏览器和同一个会话上第二次访问页面,那么 webapp 会下载所有的 GUIMyDialogBox吗?(如果它在同一个会话中,那么我相信它不会再次下载,因为 GUI 在其他地方获得了 Catch)
好的,现在我将按照 Google http://www.gwtproject.org/doc/latest/DevGuideCodeSplitting.html的建议进行此代码拆分,如下所示:
Button b = new Button("Click me", new ClickHandler() {
public void onClick(ClickEvent event) {
GWT.runAsync(new RunAsyncCallback() {
public void onFailure(Throwable caught) {
Window.alert("Code download failed");
}
public void onSuccess() {
MyDialogBox myD=new MyDialogBox(); ///There a lot of Gui (button, grid, css...) on this dialogbox
myD.show();
}
});
}
});
我的假设是 Webapp 不会在用户访问Header页面时下载此代码。但是当用户单击按钮“b”时,它将下载代码。但我的问题是
如果你第一次点击按钮,那么它会下载,但是如果用户第二次甚至第三次点击同一个按钮,那么应用程序会在第二次/第三次继续下载相同GUI的按钮吗?DialogBox或者应用程序会在第一次下载时捕捉到GUI其他DialogBox地方的内容吗?当用户第二次/第三次点击时,它会回忆捕捉到的内容,而不是再次下载相同的内容?
我很困惑,谁能解释一下?
另外,是否值得为 big 进行代码拆分DialogBox?