2016-08-18 3 views
3

誰でも私のVaadinのサーバー側のJavaコンポーネントがどのように機能するのか説明できますか?彼らは、 "ウィジェットセット"と呼ばれるクライアントサイドのjavascriptエンジンを使ってサーバー側の状態を同期させるように見えます。Vaadinはどのように機能しますか?

誰でもVaadinの内部についての詳細な説明はありますか?私はそれを私の同僚に説明しようとしており、言葉を失っています。

+0

あなたはカルガリーにいることに気づくに起こりました。私はVaadinの基礎を経て2週間でそこのVaadin meetupをホストするつもりです。チャンスがあり、同僚を連れて来たら、私たちと一緒に参加してください。 https://www.meetup.com/Vaadin-Calgary/events/230478117/(ここに投稿して申し訳ありませんが、私が見る限り私的なメッセージを送信する方法はありません) – Marcus

答えて

7

基本的にVaadinは、サーバー上のUIのコードを実行し、DOMを作成および更新する「シンクライアント」(ウィジェットセット)などのブラウザを使用しています。すべてのサーバ - クライアント通信は自動化され、Vaadinによって処理されます。ブラウザの最終的な結果は、ブラウザに関する限り、プレーンなHTML5アプリケーションに過ぎず、プラグインは必要なく、異なるデバイス間で動作します。

少し深くなると、フレームワークの各コンポーネントには、サーバー側とブラウザ実装の両方があります。両方とも、フレームワークによって維持され、伝達される状態を共有します。すべてのコミュニケーションがフレームワークによって処理されるので、差分を送信してデフォルトを送信することをスキップするだけで、トランスポートをかなり最適化できます。ウィジェットセットにはブラウザコンポーネントのJS実装が含まれているため、HTMLテンプレートは生成されませんサーバー上で送信され、実際のコンポーネントの状態はより軽量です。ここで

は、ドキュメントからのより詳細な説明です:https://vaadin.com/docs/-/part/framework/introduction/intro-overview.html

+0

私もこの回答に追加しますGWTに基づいて独自のVaadinコンポーネントを開発することは、Vaadinがどのように動作するかを理解するのに役立ちます。 – kukis

+0

"シンクライアント"にとってかなり重いです。基本的にクライアントとサーバーは、UIの状態の変更(ボタンのクリック、テキストの変更など)を行い、Widgetset/Clientはブラウザでレンダリングを行います。したがって、サーバー内の状態を操作すると、たとえば次のようになります。テーブルの行を追加すると、クライアントは次のリクエストでそれについて通知されます(プッシュで即座に)。 – ssindelar

関連する問題