私はGWTの使用に深刻な疑念を持っています。 GWTは、クライアントコードがJavaScriptとHTMLにコンパイルされていると主張していますが、コードをコンパイルした後も、プロジェクトのクライアントコードの.classファイルを見ています。もちろん、私はWEB-INFディレクトリにいくつかのjsとhtmlファイルを持っていますが、Javaクライアントコードがjsとhtmlに完全にコンパイルされていると、なぜプロジェクトに.classファイルがあるのでしょうか?GWTは実際にクライアントコードをJavaScriptとHTMLにコンパイルしていますか?
答えて
GWTがわかっている場合、これは非常に簡単です。ウィキペディアによると:
GWTアプリケーションは、2つのモードで実行できます。
- 開発モード(旧ホストモード):アプリケーションはJava仮想マシン内のJavaバイトコードとして実行される(JVM )。このモード は通常、コード のホットスワッピングとデバッグをサポートする開発に使用されます。
- 生産モード(以前のウェブモード):アプリケーションは、Javaソースからコンパイルされた純粋なJavaScriptとHTMLとして実行されます。通常、このモードは です。
私はあなたがJavaバイトコードファイル(.classファイル)を見ているなぜあなたはあなたのプロジェクトである理解だと思います。これを確認するには、プロジェクトを開始し、gwtによって生成されたWebページを開き、クライアントパッケージから.classファイルを削除しても機能しません。しかし、プロダクションモードではいくつかの.classファイルに依存しないので正しく動作します。たとえば、UIを構築するクラスです。
唯一の例外はサーバークラスで、クラスは両方に共通して役立ちます(サーバーによっても必要です)。どちらの場合も、サーバーJVMは実際にクラスをロードするため、コンパイルする必要があります。 –
@ColinAlworthそれはいくつかの.classに依存しないと言って、私は例えばMyModuleEntryPointのようなUIを構築する責任があるクラスを意味するので、コンパイルされたjsとhtmlが動作するクラスはありません。 –
うん、クライアントパッケージ内のすべての.classファイルを削除すると、何らかの破損が起こる可能性があることを明確にしたい。 –
GAEにデプロイすると、ディレクトリ "WAR"が表示されます。このWARはサーバーにデプロイされ、クライアント側コード用の純粋なJS + HTMLコードを持っています。
- 1. GWT - htmlファイルにコンパイル
- 2. javascriptでhtmlをコンパイルしてファイルにダンプします
- 3. 私は実際にシングルトンを必要としていますか?
- 4. JNIバインディングとクライアントコードをいつ再コンパイルするのですか?
- 5. GWT。 JavaScriptでHTMLのタグリストに
- 6. GWTアプリケーションのどの部分がJavaScriptにコンパイルされていますか?
- 7. DataItemにエスケープされたHTML、実際のHTMLとしてレンダリングする方法が含まれていますか?
- 8. GWTクライアントコードからJavaアプレットメソッドを呼び出すときにNPObjectでメソッドを呼び出すときにエラーが発生しました。クライアントコード
- 9. GWTをコンパイルする際のエラー
- 10. Javascriptではノードが実際に何を意味していますか?
- 11. HTML:実際の "onchange"イベントをHTML(jqueryなし)にするには?
- 12. javascript配列は実際に配列として実装されていますか?
- 13. ネイティブHTMLドラッグ&ドロップは実際にドラッグしますか?
- 14. GWTがjavascriptにコンパイルするのに多くの時間がかかります
- 15. gwtコンパイルされたjavascriptコードをphpとmysqlバックエンドで接続してlocalhostで実行するにはどうしたらいいですか?
- 16. StreamingContextStates.Cloneは実際に何をしていますか?
- 17. AndroidのSQLite - SQLiteDatabase.replace()は実際に何をしていますか?
- 18. Googleクロージャのtypedefは実際に何をしていますか?
- 19. "return 0"は実際に何を意味していますか?
- 20. Attachableは実際にここで何をしていますか?
- 21. 繊維/未来は実際に何をしていますか?
- 22. Process.Dispose()は実際に何をしていますか?
- 23. ImageSwitcherは実際に何をしていますか?
- 24. アセンブリ命令 'db'は実際に何をしていますか?
- 25. h()は実際に何をしていますか?
- 26. SetPriorityClass(REALTIME_PRIORITY_CLASS)は実際に何をしていますか?
- 27. Facebookは実際にOAuth 2.0をサポートしていますか?
- 28. getEvdoDbm()は実際に何をしていますか?
- 29. stopLoading()は実際に何をしていますか?
- 30. Pythonの__file__は実際に何をしていますか?
アプリケーションがサーバーにRPC呼び出しを行う場合、あなたの* 'server' *コードはまだコンパイルされたJavaクラスファイルです。クライアントサイドコードのみがjavascriptにコンパイルされます。 – Strelok
.classファイルは愚かなEclipseのせいで、目を覚ます可能性のあるJavaファイルを無意識にコンパイルするためです。 RPCまたはRequestFactoryクラスのサーバー側でない限り、それらは無用です。 –