0

現時点では正常に動作し、地理位置情報を使用するアプリがあります。com.google.gwt.geolocation.client.Geolocation を呼び出すメソッドがあります。

既存のエントリ ポイントを拡張し、このメソッドをオーバーライドしてネイティブの Geolocation ライブラリを使用するようにしたので、許可ポップアップは表示されません。

コンパイルに 2 倍の時間がかかる 2 つのモジュールを避けるにはどうすればよいですか?

4

1 に答える 1

0

GWT では、通常、アプリケーションまたは perl.htmlページごとにエントリ ポイントがありますが、他のシナリオを使用することもできます。複数のエントリ ポイントを持つモジュール ファイル (.gwt.xml)、または複数のモジュールをロードするページ (.cache) を使用できます。 .js)、または同じモジュール (.cache.js) を別のページにロードすることもできます。

したがって、あなたの場合、1 つのエントリポイントと 1 つのモジュール ファイルを維持し、両方のページに同じコンパイル済みモジュールを含めることができます。この場合、エントリ ポイントにコードを記述して、各ページで何をすべきかを知る必要があります。

public void onModuleLoad() {
  if (Window.Location.getPath().matches(".*page_1.html.*")) {
     // do something
  } else {
     // do another thing
  }
}

この場合、両方のページにすべてのコンパイル済みのものがあると考えてください。ただし、gwtコード分割を利用して、各ページに必要なものだけをロードさせることができます。

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) {
        }
      });          
    }
 }

このアプローチの利点は、すべてのサイトで 1 回コンパイルするだけで、キャッシュを利用してすべてのページで同じコードを共有できることです。最終的なコードが高くなる、開発モードが遅くなるなどの欠点もあります。

于 2013-04-01T15:19:47.847 に答える