javascript - GWT 同步脚本加载

标签 javascript java gwt asynchronous

我正在寻找一种方法来确保 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) 按所需的顺序注入(inject)它们。有没有办法使用 GWT 将脚本主体下载到特定的类中?对我的方法提出任何建议或改进将不胜感激。

提前致谢。

最佳答案

您可以按照您想要的顺序注入(inject)脚本,将它们放入 TextResources ,可以是同步的也可以是异步的。

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

关于javascript - GWT 同步脚本加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33074870/

相关文章:

java - Chrome 驱动程序 "The driver is not executable"

java - Masked JFormattedTextField 防止删除斜杠字符

gwt - 如何将 ClickableTextCell 渲染为 GWT CellTable 中的 anchor ?

gwt - GWT-在HTMLPanel中显示/隐藏<tr>

javascript - 如何向现有的 JavaScript 函数添加键盘快捷键?

javascript - 在 iOS 中从 iframe 重定向父页面

javascript - 如何将 HTML5 Canvas 存储为帧列表中的图像?

javascript - 不选择值自动获取多选所有值并显示

java - 更改了 JAVA_HOME 和 PATH 但 java 版本保持不变

GWT 确认对话框