[解決済み] GWTの最大の落とし穴?[クローズド]
質問
GWTを使って実装することを選択したプロジェクトの最初/中盤にいます。GWT(およびGWT-EXT)を使用する際に、克服できない大きな落とし穴に遭遇した人はいますか?パフォーマンスの観点からはどうでしょうか?
すでに見聞きしているものでは、以下のようなものがあります。
- Googleがコンテンツをインデックスできない
- CSSやスタイリングが不安定な気がする
これらの項目についても、ご意見をお待ちしています。ありがとうございます。
解決方法は?
私はGWTの大ファンですが、確かに多くの落とし穴がありましたが、すべてではないにしろ、ほとんどの場合、克服することができました。
問題点 コンパイル時間が長い。プロジェクトが大きくなるにつれて、コンパイルにかかる時間も長くなります。コンパイルに20分かかったという報告もありますが、私の場合は平均して1分程度です。
解決策 コードを個別のモジュールに分割し、変更されたときだけビルドするように ant に指示します。また、開発中に、1つのブラウザ用にのみビルドすることで、コンパイル時間を大幅に短縮することができます。これは、.gwt.xml ファイルに記述することで実現できます。
<set-property name="user.agent" value="gecko1_8" />
ここで、gecko1_8 は Firefox 2+、ie6 は IE など。
問題あり。 ホストモードは(少なくともOS Xでは)非常に遅く、JSPやRailsのページなどを編集してブラウザで更新を押したときに得られる「ライブ」な変更には遠く及びません。
解決策 ホストモードにはより多くのメモリを与えることができます(私は通常512Mを取得しました)が、それはまだ遅いです、私はあなたがGWTで十分に良くなると、これを使用することを発見した。大規模な変更を行い、1つのブラウザ用にコンパイルし(一般的には20秒のコンパイル)、ブラウザで更新を押すだけです。
アップデート:GWT 2.0+では、新しい「開発モード」を使用するため、これはもはや問題ではありません。これは基本的に、選択したブラウザで直接コードを実行できることを意味し、スピードの損失はなく、さらにfirebug/inspectなどが可能です。
http://code.google.com/p/google-web-toolkit/wiki/UsingOOPHM
問題あり。 GWTのコードはJavaであり、HTMLページのレイアウトとは異なる考え方を持っているため、HTMLのデザインをGWTに取り込むことが難しくなっています。
解決策 これも慣れですが、残念ながらHTMLデザインをGWTデザインに変換するのは、HTMLデザインをJSPページに変換するようなことをするよりも常に遅くなるようです。
問題あり。 GWTは理解するのに少し時間がかかり、まだ主流ではありません。つまり、あなたのチームに加わる開発者やあなたのコードを保守する開発者のほとんどが、ゼロからGWTを学ばなければならないのです。
解決策 GWTが普及するかどうかはまだわかりませんが、採用する人をコントロールできる企業であれば、GWTを知っているか、学びたいと思っている人を常に選ぶことができます。
問題あり。 GWTは、jqueryや単なるjavascriptのようなものと比べると、とてもハンマーに近いものです。JSファイルを含めるだけでなく、それを実現するために多くのセットアップが必要です。
解決策 jqueryのようなライブラリは、それらに適した小規模で単純なタスクのために使用します。AJAXで本当に複雑なものを作りたいときや、RPCメカニズムでデータをやり取りする必要がある場合は、GWTを使いましょう。
問題あり。 GWTのページに情報を入力するために、ページが最初にロードされたときにサーバーコールを行う必要があることがあります。必要なデータを取得する間、ローディング・シンボルが表示されるのは、ユーザーにとって迷惑なことです。
解決策 JSPページの場合、ページはHTMLになる前にすでにサーバーによってレンダリングされているので、実際にすべてのGWTコールをその時点で行い、ページにあらかじめロードしておけば、即座に読み込むことが可能です。詳しくはこちらをご覧ください。
ウィジェットのCSSスタイル設定に問題があったことは一度もありませんし、カスタムでもそうでなくても問題ありません。
パフォーマンスに関しては、一度コンパイルされたGWTコードは常に高速で、AJAXコールはページ全体をリフレッシュするよりもほぼ常に小さいことが分かっています。
関連
-
スタイルシートとして解釈されるリソースが、MIMEタイプtext/htmlで転送される。
-
eclipse で「アクセス制限: タイプ 'HttpServer' は API ではありません」というプロンプトが表示される。
-
をインスタンス化することができません。
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
Spring BootのテストメソッドFailed to load ApplicationContextの問題を解決する
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗した問題は解決しました。
-
spring aop アドバイスからの Null 戻り値が、サマリーのプリミティブ戻り値と一致しない。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
テストが見つかりませんでした
-
[解決済み】gwtコンパイラを高速化する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java エラー報告 スレッド "main" での例外 java.util.NoSuchElementException
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
スキャナは、タイプに解決することはできません最もルーキー初心者の質問
-
Eclipseプロンプトを実行する java仮想マシンを使用しない
-
Eclipseでプロジェクトエクスプローラービューとパッケージエクスプローラービューを使う
-
スレッド "main" で例外発生 java.lang.ArrayIndexOutOfBoundsException: 0 at One1.main(One1.java:3)
-
node js npm gruntインストール、elasticsearch-head 5.Xインストール
-
Javaエラーメッセージがenclosingクラスでない
-
Java(1)仕上げの基本概念+eclipseのインストール構成
-
ローカルリソースのロードが許可されていない場合の解決策