いくつかの外部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アプリケーションに問題なくバックポートできるはずです。