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.