2013-04-01 2 views
0

У меня есть приложение, которое отлично работает на данный момент и использует геолокацию. У меня есть метод, который вызывает com.google.gwt.geolocation.client.Geolocation.Общая точка доступа GWT с iPhone UIWebView

Я продлил существующую точку входа и переустановил этот метод, чтобы использовать собственную библиотеку геолокации, поэтому у меня нет всплывающих окон разрешения.

Как я могу избежать наличия двух модулей, которые занимают в два раза больше времени для компиляции?

+0

У вас есть два файла модулей (.gwt.xml) ?, добавляет ли вторая точка входа что-то еще из первого модуля? , загружаете ли каждую точку входа в другой файл page.html? –

+0

На данный момент у меня есть две точки входа, два html-файла, 2 модуля. Вторая запись просто перезаписывает статический метод. –

ответ

0

В 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 может быть медленнее и т. Д.

Смежные вопросы