GWT:延迟加载外部JS资源

GWT:延迟加载外部JS资源,gwt,deferred-loading,Gwt,Deferred Loading,我有一个依赖于一些外部JS文件的小部件,我想延迟加载所有这些外部资源。我已经使用了代码拆分来延迟加载与小部件相关的GWT代码,但是GWT.xml中使用脚本标记定义的JS文件仍然会加载,这是不可取的 是否有标准的GWT方式按需加载这些外部资源?我可以用原始JS自己做,但我不想在这上面花时间。我想你会想看看com.google.gwt.core.client.ScriptInjector类: 动态创建脚本标记并将其附加到DOM 脚本加载为URL时的用法: ScriptInjector.fromUr

我有一个依赖于一些外部JS文件的小部件,我想延迟加载所有这些外部资源。我已经使用了代码拆分来延迟加载与小部件相关的GWT代码,但是GWT.xml中使用
脚本
标记定义的JS文件仍然会加载,这是不可取的


是否有标准的GWT方式按需加载这些外部资源?我可以用原始JS自己做,但我不想在这上面花时间。

我想你会想看看
com.google.gwt.core.client.ScriptInjector
类:

动态创建脚本标记并将其附加到DOM

脚本加载为URL时的用法:

ScriptInjector.fromUrl(“http://example.com/foo.js)setCallback(
新回调函数(){
公共失效失效失效(异常原因){
警告(“脚本加载失败”);
}
成功时公开作废(作废结果){
警告(“脚本加载成功”);
}
}).inject();

当然,这段代码可以在分割点内调用,也可以在代码中的任何地方调用。

ScriptInjector非常便于移植。它没有任何外部依赖项,因此您应该能够将它向后移植到2.3应用程序中,而不会有太多问题。

Brilliant!谢谢你,科林。虽然,现在我必须从2.3迁移到2.4:)我会看看它是如何运行的。2.3到2.4应该不是什么大问题,但如果是的话,你可以看看ScriptInjector.fromUrl如何与ScriptElement一起工作,你可以在不升级的情况下将其构建到你的应用程序中。在GWT Google组中,关于这方面的讨论甚至更多: