Aby zapewnić ładne adresy URL między częściami naszej aplikacji, podzieliliśmy wszystko na kilka modułów, które są niezależnie kompilowane. Na przykład istnieje część "menedżera" i część "edytora". Edytor uruchamia się w nowym oknie. W ten sposób możemy połączyć się bezpośrednio z edytorem:Duże aplikacje w GWT: jeden moduł lub kilka?
/com.example.EditorApp?id=1
Moduł EditorApp pobiera wartość id i ładuje dokument.
Problem z tym, że WSZYSTKO kodu, który jest wspólny pomiędzy tymi dwoma modułami, jest duplikowany na wyjściu. Obejmuje to wszelką zawartość statyczną (grafika), arkusze stylów itp.
Kolejnym problemem jest czas kompilacji generowania JavaScriptu prawie dwukrotnie, ponieważ mamy pewien skomplikowany kod wspólny dla obu modułów, który musi zostać przetworzony dwa razy.
Czy ktoś sobie z tym poradził? Rozważam złomowanie poszczególnych modułów i scalenie ich z powrotem do jednego celu kompilacji. Jedyną wadą jest to, że adresy URL między naszymi „apps” stać się coś takiego:
/com.example.MainApp?mode=editor&id=1
Każde okno ładuje moduł główny, sprawdza wartość parametru mode, a i wywołuje odpowiedni kod moduł startowy.
Może to pomóc: http://code.google.com/webtoolkit/doc/latest/DevGuideCodeSplitting.html –
Tak. Zadałem to pytanie przed wydaniem GWT 2.x. Od tego czasu sprawy stały się znacznie prostsze i potężniejsze. –