当我在 Eclipse 中创建时,没有代码拆分选项PresenterWidget
,所以我假设我的PresenterWidget
or 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();
}
});
所以,我的第一个问题是:
MyDialogBox
1,当用户访问页面时,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
?