我正在寻找一种方法来确保 GWT 中外部脚本的排序。该方式必须与 SuperDevMode 兼容。到目前为止我想出的两种方法是
- 将所有 javascript 文件复制到 war 文件夹中(不可取);和
- 在 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/