Estoy escribiendo una aplicación en GWT (mapfaire.com), que utiliza la API de Google Maps, y me gustaría usar el utilities library. Escribir un contenedor JSNI para las bibliotecas no es un problema, pero ¿cómo me aseguro de que el compilador 'cuece' el JS en la aplicación en sí mismo, en lugar de descargarlos por separado a través de un module script include?Agrupación Javascript en una aplicación GWT
Respuesta
En GWT 2.4 añade ScriptInjector http://gwt-code-reviews.appspot.com/1451818/
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();
Si la licencia permite que lo haga, entonces se podría copiar y pegar todo el código JS de la biblioteca en un método JSNI.
También puede utilizar un TextResource así:
public static interface Resources extends ClientBundle {
@Source("some.js")
TextResource someJs();
}
public void onModuleLoad() {
final Resources resources = GWT.create(Resources.class);
eval(resources.someJs().getText());
}
private static native void eval(String s) /*-{
eval(s);
}-*/;
El texto de "some.js" será internado directamente en la aplicación resultante. No habrá ninguna descarga por separado.
Sí, podría, pero realmente quiero algo c más delgado. Y podría tener los archivos movidos durante la compilación como una dependencia. –
@Sudhir: Lo entiendo completamente. Sin embargo, gwtc es solo un compilador/convertidor de Java a JavaScript, que además puede incluir JavaScript por JSNI. Entonces no veo una forma directa. Tal vez pueda construir una solución indirecta como esta: incluya el código JS como TextResource (ClientBundle), luego evalúe el texto en JSNI. ¡No he intentado esto todavía! –
En este momento, puede marcar un archivo js como un recurso de script y asegurarse de que se descargue antes de ejecutar el módulo. Estoy intentando ver si alguien sabe cómo puedo decirle a GWT que coloque este archivo en el módulo. Todavía haría exactamente lo mismo, con menos solicitudes. –
¿Está el gwt-maps-utility project útil para sus necesidades?
No, estoy en v3, y nadie parece tener las utilidades del puerto GWT para v3 aún :( –
Se podría definir un ClientBundle para sus recursos de JavaScript así:
public interface JsResources extends ClientBundle {
final JsResources INSTANCE = GWT.create(JsResources.class);
@Source("myAwesomeJavaScript.js")
TextResource myAwesomeJavaScript();
}
e incluirlo en su aplicación con el ScriptInjector:
ScriptInjector
.fromString(JsResources.INSTANCE.myAwesomeJavaScript().getText())
.inject();
imo esta es la mejor solución, la agrupación de los js en un textresource reducirá una solicitud HTTP adicional para cargar el js. –
- 1. Célula compuesta en una aplicación gwt
- 2. GWT y archivos javascript
- 3. URL base para una aplicación GWT
- 4. GWT sin JavaScript?
- 5. GWT SE aplicación amigable
- 6. Remoting desde una aplicación Swing al servidor GWT
- 7. agrupación de datos de Javascript json
- 8. agrupación/minificación ASP.NET: incluyendo Javascript generado dinámicamente
- 9. GWT bookmarket o GWT como una biblioteca externa
- 10. Una agrupación comprensible
- 11. Método nativo de Javascript en GWT
- 12. gwt aplicación de varias páginas
- 13. cómo obtener información de configuración regional en una aplicación GWT
- 14. GWT con varias páginas de host en una aplicación heredada
- 15. Uso de widgets Vaadin en una aplicación GWT
- 16. ¿Cómo uso OAuth en mi aplicación GWT?
- 17. Trabajar con sesiones en la aplicación GWT
- 18. ¿Cómo implementar i18n en la aplicación GWT?
- 19. excepción en la aplicación GWT RPC
- 20. Integrando Google Analytics en la aplicación GWT
- 21. Diferencia entre gwt, gwt-rpc, ext-gwt, smart gwt
- 22. Enhebrado en GWT (Cliente)
- 23. Agrupación de GridView en la aplicación Metro de Windows 8
- 24. Agrupación de una serie en Python
- 25. ¿Cómo puedo ejecutar una aplicación GWT desde gwt-maven-plugin sin ningún plugin de navegador?
- 26. cliente en GWT
- 27. ¿Cuál es el enfoque correcto para iniciar una aplicación GWT?
- 28. ¿Está ejecutando una aplicación GWT (incluidos Applets) dentro de un IFRAME desde una aplicación ASP.NET 3.5?
- 29. Escalar una imagen en GWT
- 30. instrumentos para perfilar la aplicación GWT
Whoa Parece que ha recorrido un largo camino desde 1,6:. D –