2

GWT Web /プロダクションモードでは、JavaコードはブラウザでレンダリングされるJavascriptコードにコンパイルされます。

また、GWT開発モードでは、GWT開発者プラグインがJavaコードをJavaScriptにコンパイルして、ブラウザーでレンダリングすると常に考えていました。しかし、あるサイトで読んだ後、開発モードのブラウザーで表示するためにJavaScriptにコードをコンパイルする必要がないことがわかりました。

だから、私は疑問に思います:JavaScriptコードでない場合、このモード中にブラウザに表示されるこれらすべてのウィジェットは何ですか?わかりません。

これを理解するのを手伝ってください。

4

1 に答える 1

6

開発者モードの核心は、コードが Java で実行されることです。これは、標準の Java デバッガーを使用できる場合の前提条件です。高レベルの概要については、GWT のドキュメントを参照してください。

魔法はJSNI メソッドオーバーレイ タイプで発生します。クラスがロードされると、そのすべての JSNI メソッドが抽出され、その JS 本体がブラウザに送信され、実行の準備が整い (JavaScript のように)、クラスがオンザフライで書き換えられます。 JSNI メソッドを再実装してブラウザーを呼び出す (そこにインストールした Dev プラグインを介してトリガーされる)?gwt.codesvr=URL で) 対応する JS 関数を実行します。これが、Java オブジェクトが JSNI メソッドで不透明なハンドルと見なされる理由です。Java オブジェクトとサーバー側のダミー JS オブジェクトをペアにする数値 ID が割り当てられます。同様の、しかしより複雑な書き換えがオーバーレイ タイプに対して行われ、JS オブジェクトが Java コードに (オーバーレイ タイプとして) 渡されるときに同じ ID マッピングが使用されます。

ところで、Super Dev Modeはオンザフライで(ほぼ) JavaScript にコンパイルされます。

于 2012-09-18T20:03:14.580 に答える