GWT: отложенная загрузка внешних ресурсов JS - PullRequest
11 голосов
/ 01 ноября 2011

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

Ответы [ 2 ]

17 голосов
/ 01 ноября 2011

Думаю, вы захотите взглянуть на класс 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();

Этот код, конечно, может быть вызван из ваших точек разделения или из любой точки вашего кода.

1 голос
/ 15 ноября 2011

ScriptInjector довольно портативный. Он не имеет внешних зависимостей, поэтому вы можете без проблем перенести его в приложение 2.3.

...