11

いくつかの外部JSファイルに依存するウィジェットがあり、これらすべての外部リソースを遅延ロードしたいと思います。ウィジェットに関連するGWTコードを遅延ロードするためにコード分割をすでに使用しましたが、タグを使用してgwt.xmlで定義されたJSファイルscriptはとにかくロードされます。これは望ましくありません。

これらの外部リソースをオンデマンドでロードする標準のGWT方法はありますか?生のJSを使って自分でそれを行うことはできますが、これにも時間をかけたくありません。

4

2 に答える 2

18

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();

もちろん、このコードはスプリットポイント内から、または実際にはコード内のどこからでも呼び出すことができます。

于 2011-11-01T17:58:50.483 に答える
1

ScriptInjectorは非常に移植性があります。外部依存関係がないため、2.3アプリケーションに問題なくバックポートできるはずです。

于 2011-11-15T09:56:19.963 に答える