【发布时间】:2013-10-14 07:05:11
【问题描述】:
当我在 Eclipse 中创建 PresenterWidget 时,没有代码拆分选项,所以我假设我的 PresenterWidget 或 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();
}
});
所以,我的第一个问题是:
1、当用户来到Header页面时,webapp会下载MyDialogBox的所有GUI吗?
第二,假设用户在同一浏览器和同一会话中第二次访问页面Header,那么webapp会下载MyDialogBox的所有GUI吗? (如果它在同一个会话中,那么我相信它不会再次下载,因为 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();
}
});
}
});
我的假设是当用户访问Header 页面时,Webapp 不会下载此代码。但是当用户单击按钮“b”时,它将下载代码。但我的问题是
如果你第一次点击按钮,那么它会下载,但是如果用户第二次甚至第三次点击同一个按钮,那么应用程序会继续下载相同的GUI 和DialogBox 在第二次/第三次?或者应用程序在第一次下载时会在其他地方捕获DialogBox 的GUI,并且当用户第二次/第三次点击时,它会回忆捕获而不是再次下载相同的东西?
我很困惑,谁能解释一下?
另外,大DialogBox值得做代码拆分吗?
【问题讨论】: