GWT 同步脚本加载

GWT Synchronous Script Loading

我正在寻找一种方法来确保 GWT 中外部脚本的顺序。该方式必须与 SuperDevMode 兼容。到目前为止我想出的两种方法是

  1. 将所有 javascript 文件复制到 war 文件夹中(不可取);和
  2. 在 onModuleLoad() 中使用 ScriptInjector。

我选择了选项 2,但是我想知道除了级联回调之外是否还有另一种以特定顺序执行脚本的方法,因为这会导致性能显着下降。我想知道是否还有其他人 运行 遇到过这个问题。

下面是级联回调的简单示例。

ScriptInjector.fromUrl(GWT.getModuleBaseForStaticFiles() + "somescript.js").setCallback(new Callback<Void, Exception>() {
    @Override
    public void onFailure(Exception reason) {
    }

    @Override
    public void onSuccess(Void result) {
        // repeat ScriptInjector.fromUrl() n many times
    }
}).inject();

截至目前,我正在寻找一种方法来并行异步下载所有 javascript 文件(以存储在字符串中?),然后使用 ScriptInjector.fromString(jsBody) 将它们注入到需要订购。有没有办法使用 GWT 将脚本主体下载到特定的 class?非常感谢对我的方法提出任何建议或改进。

提前致谢。

您可以将脚本放入 TextResources 中,以您想要的顺序注入脚本,可以是同步的,也可以是异步的。

如果您想将这些脚本保留在您的主应用程序之外,您可以先加载它们,然后按所需顺序注入它们。