Java GWT cache.js太大--花点时间让应用程序显示出来
我们在GWT之上使用JBoss Errai框架来构建web应用程序。我们面临的问题是,当使用优化进行编译时,该应用程序的编译版本已经有大约10兆字节的大小 在加载while cache.js文件之前,GWT/Errai应用程序是否有办法拆分或以某种方式显示初始页面 你可以使用机械装置 要分割代码,只需在 您希望程序能够暂停的位置 下载更多代码。这些位置称为拆分点 例如:Java GWT cache.js太大--花点时间让应用程序显示出来,java,gwt,errai,Java,Gwt,Errai,我们在GWT之上使用JBoss Errai框架来构建web应用程序。我们面临的问题是,当使用优化进行编译时,该应用程序的编译版本已经有大约10兆字节的大小 在加载while cache.js文件之前,GWT/Errai应用程序是否有办法拆分或以某种方式显示初始页面 你可以使用机械装置 要分割代码,只需在 您希望程序能够暂停的位置 下载更多代码。这些位置称为拆分点 例如: public class Hello implements EntryPoint { public void onModu
public class Hello implements EntryPoint {
public void onModuleLoad() {
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() {
Window.alert("Hello, AJAX");
}
});
}
});
RootPanel.get().add(b);
}
}
。。。最初下载的代码不包括字符串“Hello,
AJAX”或实现Window.alert所需的任何代码。一旦
单击按钮,将调用GWT.runAsync,并且
代码将开始下载。假设下载成功,则
将调用onSuccess方法;因为必要的代码
下载后,该呼叫将成功。如果下载失败
将调用该代码,然后调用onFailure
您可以在文档中找到详细信息:如果您不想使用拆分点来实际减少初始负载大小,可以在开始时显示一些加载屏幕,这样用户至少知道应用程序正在启动 这可以通过以下方式轻松实现:
- 添加一个
向主机页显示一些加载动画()div
应添加在div
标记之前- 给那个
一个id,例如:div
加载图标
- 在
方法中,加载onModuleLoad
后,通过将div设置为*.cache.js
display:none来移除div代码>和/或将其从DOM中删除
- 我也面临同样的问题。我的应用程序是8Mo大,我通过更改GWT编译选项之一,成功地将其减少到800ko:输出样式从详细到模糊我实际上在寻找对ErraiIt有用的东西,你不太可能找到Errai特有的东西(因为它非常不流行),但是,正如前面提到的,代码拆分是一种基本的GWT机制,它解决了您的确切问题;所以你很有可能它对你有用(除非Errai做了一些特别的事情让你避免使用代码拆分),我不会说Errai不受欢迎,我听说过它的优点。由于不了解Errai,我也无能为力(我同意Errai人为地通过生成一些难以/不可能为GWT编译器优化的代码而导致膨胀;这可能取决于您使用的Errai特性)