Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GWT cache.js太大--花点时间让应用程序显示出来_Java_Gwt_Errai - Fatal编程技术网

Java GWT cache.js太大--花点时间让应用程序显示出来

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

我们在GWT之上使用JBoss Errai框架来构建web应用程序。我们面临的问题是,当使用优化进行编译时,该应用程序的编译版本已经有大约10兆字节的大小

在加载while cache.js文件之前,GWT/Errai应用程序是否有办法拆分或以某种方式显示初始页面

你可以使用机械装置

要分割代码,只需在 您希望程序能够暂停的位置 下载更多代码。这些位置称为拆分点

例如:

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
    应添加在
    标记之前
  • 给那个
    div
    一个id,例如:
    加载图标
  • onModuleLoad
    方法中,加载
    *.cache.js
    后,通过将div设置为
    display:none来移除div和/或将其从DOM中删除

    • 我也面临同样的问题。我的应用程序是8Mo大,我通过更改GWT编译选项之一,成功地将其减少到800ko:输出样式从详细到模糊

      我实际上在寻找对ErraiIt有用的东西,你不太可能找到Errai特有的东西(因为它非常不流行),但是,正如前面提到的,代码拆分是一种基本的GWT机制,它解决了您的确切问题;所以你很有可能它对你有用(除非Errai做了一些特别的事情让你避免使用代码拆分),我不会说Errai不受欢迎,我听说过它的优点。由于不了解Errai,我也无能为力(我同意Errai人为地通过生成一些难以/不可能为GWT编译器优化的代码而导致膨胀;这可能取决于您使用的Errai特性)