GWT: отложенная загрузка внешних ресурсов JS

У меня есть виджет в зависимости от некоторых внешних файлов JS, и я хотел бы лениво загружать все эти внешние ресурсы. Я уже использовал разделение кода для ленивой загрузки кода GWT, который касается виджета, но JS-файлы, определенные в gwt.xml, используя script tag, загружаются в любом случае, что нежелательно.

существует ли стандартный способ GWT загрузки этих внешних ресурсов по требованию? Я могу сделать это сам, используя raw JS, но я бы не хотел тратить время на это тоже.

2 ответов


Я думаю, вы захотите взглянуть на 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.