В GWT обычно у вас есть точка входа для каждого приложения или perl .html
, но вы можете иметь другие сценарии: у вас может быть файл модуля (.gwt.xml) с несколькими точками входа или загрузка страницы несколько модулей (.cache.js) или даже вы можете загрузить один и тот же модуль (.cache.js) на разных страницах.
Итак, в вашем случае вы можете сохранить одну точку входа и один файл модуля и включить один и тот же скомпилированный модуль на обе страницы. В этом случае вы должны написать код в вашей точке входа, чтобы знать, что делать на каждой странице:
public void onModuleLoad() {
if (Window.Location.getPath().matches(".*page_1.html.*")) {
// do something
} else {
// do another thing
}
}
Думай, что в этом случае вы будете иметь все скомпилированные вещи в обеих страницах, но вы можете воспользоваться из GWT code-splitting и сделать каждую скорость загрузки страницы только вещи, он должен:
public void onModuleLoad() {
if (Window.Location.getPath().matches(".*page_1.html.*")) {
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
// do something
}
public void onFailure(Throwable reason) {
}
});
} else {
GWT.runAsync(new RunAsyncCallback() {
public void onSuccess() {
// do another thing
}
public void onFailure(Throwable reason) {
}
});
}
}
преимущества этого подхода заключается в том, что вы собираете только один раз для всех вашего сайта, и вы разделяете тот же код во всех ваших страницах, воспользовавшись кэш. Есть и недостатки, как ваш последний код выше, dev-mode может быть медленнее и т. Д.
У вас есть два файла модулей (.gwt.xml) ?, добавляет ли вторая точка входа что-то еще из первого модуля? , загружаете ли каждую точку входа в другой файл page.html? –
На данный момент у меня есть две точки входа, два html-файла, 2 модуля. Вторая запись просто перезаписывает статический метод. –