0

私は GWT を初めて使用し、ModuleClientBundleの基本的な違いを理解するのに苦労しています。GWT ドキュメントの一部の領域では、どちらも同じもののように見えますが、他の領域では、それらが同じではないことは明らかです。

私の理解では、モジュールはユーザーのブラウザーにデプロイされるクライアント側のコードです。これは、HTML、CSS、および JS を含む ZIP ファイルです。

私の理解では、ClientBundle はモジュールに似ていますが、画像などの静的リソースのみが含まれています。

これらの理解が正しければ、なぜ両者を区別する必要があるのでしょうか? HTML/CSS/JSも静的リソースじゃないの!? また、私がまったく的外れである場合は、違いが何であるかを理解するのを手伝ってください。また、それぞれの具体的な例と、それぞれを使用するのが適切な場合を提供してください。前もって感謝します!

4

1 に答える 1

4

モジュールについて正しい考えがあります。モジュールには、(開発側で)使用するJavaソースパス、コンパイルを開始するエントリポイント、およびコンパイル時に使用するさまざまなプロパティ(ブラウザ、ロケール)が記述されています。コンパイル後、モジュールは出力も表します。JavaScriptと、ログ、画像、スタイルシートなど、関連するその他のコンパイル済みファイルです。

対照的に、ClientBundleは、コンパイル後にJavaソースパス内の特定のリソースが使用されることを開発者がコンパイラーに通知する方法の1つです。CssResourceには、cssスタイル名が使用されていることを確認する追加のチェックが付属しています(使用されていない場合は、コンパイルされた出力を最小化するために削除する必要があります)。ImageResourceは、コンパイル時にファイルが存在することを確認し、両方ともブラウザーごとに最適な方法でこれらのファイルを出力します。ほとんどのブラウザの画像は、サーバーへの呼び出し回数を最小限に抑えるために、実際には大規模なJSファイルに含まれています。これをサポートしていないブラウザの場合、画像は自動的にスプライトされます。

ClientBundleインターフェースを宣言し、を呼び出すことによりGWT.create(MyClientBundle.class)、これらの参照ファイルとクラスをアプリで使用可能にするというClientBundleの詳細を処理するようコンパイラーに要求します。それがGWTジェネレーターとどのように関係しているのか、SOの回答で対処できるよりもはるかに高度なトピックです...

はい、ClientBundlesは実行中のアプリに必要な静的リソースを記述します。はい、コンパイルされたモジュールさまざまな静的リソースで構成されますが、このように言い換えると、ClientBundleは静的コンテンツを含めることができる方法の1つです。 GWTモジュールで、可能な限り効率的にロードできるようにします。

于 2012-08-22T04:36:00.327 に答える