Piszę aplikację w GWT (mapfaire.com), która korzysta z interfejsu Google Maps API i chciałbym użyć utilities library. Napisanie opakowania JSNI dla bibliotek nie stanowi problemu, ale w jaki sposób mogę zagwarantować, że kompilator "zapali" JS w samej aplikacji, zamiast pobierać je osobno przez module script include?Wiązanie kodu Javascript do aplikacji GWT
Odpowiedz
W GWT 2.4 dodaje 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();
Jeśli licencja na to pozwala, możesz skopiować i wkleić cały kod JS biblioteki w metodę JSNI.
Można również użyć TextResource takiego:
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);
}-*/;
tekście „some.js” zostanie internowany bezpośrednio do otrzymanego wniosku. Nie będzie żadnego osobnego pobierania.
Tak, mogłem, ale naprawdę chcę coś szczuplejsze. Możliwe, że pliki zostały przeniesione podczas kompilacji jako zależność. –
@Sudhir: W pełni to rozumiem. Jednak gwtc to tylko kompilator/konwerter Java do JavaScript, który może dodatkowo zawierać JavaScript przez JSNI. Więc nie widzę bezpośredniego sposobu. Może możesz zbudować rozwiązanie pośrednie w ten sposób: Dodaj kod JS jako TextResource (ClientBundle), a następnie oceń tekst w JSNI. Jeszcze tego nie próbowałem! –
W tej chwili może oznaczyć plik js jako zasób skryptu i upewnić się, że został pobrany przed uruchomieniem modułu. Próbuję sprawdzić, czy ktokolwiek zna sposób, w jaki mogę powiedzieć GWT, aby umieścić ten plik w samym module. Wciąż robiłoby dokładnie to samo, z mniejszą liczbą próśb. –
Czy urządzenie gwt-maps-utility project jest przydatne do Twoich potrzeb?
Nie, jestem na v3 i nikt nie wydaje się mieć portu GWT narzędzi dla v3 jeszcze :( –
Można zdefiniować ClientBundle do zasobów JavaScript tak:
public interface JsResources extends ClientBundle {
final JsResources INSTANCE = GWT.create(JsResources.class);
@Source("myAwesomeJavaScript.js")
TextResource myAwesomeJavaScript();
}
i umieścić go w swojej aplikacji z ScriptInjector:
ScriptInjector
.fromString(JsResources.INSTANCE.myAwesomeJavaScript().getText())
.inject();
imo to jest najlepsze rozwiązanie, łącząc js w źródło tekstowe zmniejszy dodatkowe żądanie http, aby załadować js. –
- 1. Podział kodu GWT?
- 2. Objęcie i wiązanie kodu
- 3. Najlepsza praktyka parametryzowania aplikacji GWT?
- 4. Zmniejszanie kodu złożoności dla GWT
- 5. Javascript generic clone() metoda używana w aplikacji GWT
- 6. Przewijanie do góry strony w gwt aplikacji
- 7. Egzekutor kodu JavaScript lub narzędzie do sprawdzania kodu JavaScript
- 8. JavaScript zmienny wiązanie i pętla
- 9. Wprowadzanie kodu JavaScript do CSS
- 10. wyjątek w aplikacji RPC GWT
- 11. Remotting z aplikacji Swing na serwer GWT
- 12. Jak wyłączyć dzielenie kodu w GWT?
- 13. Najprostszym sposobem na dodanie GWT do aplikacji Spring MVC?
- 14. Porządkowanie kodu javascript
- 15. Praca z sesjami w aplikacji GWT
- 16. Jak skopiować do schowka za pomocą GWT?
- 17. Czy GWT można porównać do frameworków opartych na javascript?
- 18. Wiązanie z usługą z innej aplikacji
- 19. Wiązanie Qt do LLVM
- 20. WPF wiązanie do elementu
- 21. Wiązanie onchange do dropdown
- 22. GWT bookmarket lub GWT jako biblioteka zewnętrzna
- 23. Błąd JavaScript w ASP.NET MVC 4 Wiązanie
- 24. Najlepsze książki do nauki silnika aplikacji Google i GWT?
- 25. GWT - Wywołanie metody instancji z javascript zewnętrznych
- 26. JavaScript model programowania do organizacji aplikacji internetowych
- 27. Wstrzymywanie wykonywania kodu JavaScript do naciśnięcia przycisku
- 28. Przepuszczasz zmienną javascript do kodu php?
- 29. Czy istnieje narzędzie do komentowania kodu JavaScript?
- 30. Wtyczki Mavena do analizy jakości kodu javascript
Whoa. Wygląda na to, że przeszła długą drogę od 1.6: D –