我有一个依赖于一些外部 JS 文件的小部件,我想延迟加载所有这些外部资源。我已经使用代码拆分来延迟加载与小部件有关的 GWT 代码,但是使用标记在 gwt.xml 中定义的 JS 文件script
无论如何都会被加载,这是不可取的。
是否有标准的 GWT 方式按需加载这些外部资源?我可以自己使用原始 JS 来完成,但我也不想花时间在这上面。
我有一个依赖于一些外部 JS 文件的小部件,我想延迟加载所有这些外部资源。我已经使用代码拆分来延迟加载与小部件有关的 GWT 代码,但是使用标记在 gwt.xml 中定义的 JS 文件script
无论如何都会被加载,这是不可取的。
是否有标准的 GWT 方式按需加载这些外部资源?我可以自己使用原始 JS 来完成,但我也不想花时间在这上面。
我想你会想看看这com.google.gwt.core.client.ScriptInjector
门课。从 javadocs:
动态创建脚本标签并将其附加到 DOM。
...
将脚本加载为 URL 的用法:
ScriptInjector.fromUrl("http://example.com/foo.js").setCallback(
new Callback<Void, Exception>() {
public void onFailure(Exception reason) {
Window.alert("Script load failed.");
}
public void onSuccess(Void result) {
Window.alert("Script load success.");
}
}).inject();
该代码当然可以从您的分割点中调用,或者实际上可以在您的代码中的任何位置调用。
ScriptInjector 非常便携。它没有任何外部依赖项,因此您应该能够将其反向移植到您的 2.3 应用程序中而不会出现太大问题。