HTML5 UIとJavaバックエンドがあり、プレーンJavaでHTML UIを再構築しないようにしたいので、ローカルWebサーバーを実行し、Webviewを使用して「ネイティブ"window。解決策は、swingに埋め込むことができるJavaFX WebViewを使用することであるようです。紙上ではそれは素晴らしいように聞こえます(特に、Chrome/Safari)。
それは機能しますが、パフォーマンスは非常に悪いです。 Chrome、Safari(またはさらに遅いFirefox)の同じものよりも桁違いに遅い。それは文字通り使用できません(私のUIはJQuery/JSをかなり頻繁に使用しています)。ところで、私は この投稿 のコードを使用しています。
質問は:
誰かが私の経験を二番目にすることはできますか?私は単に何か間違ったことをしているのですか、それともJavaFXが原因で「正常」になっているのですか?
これを達成する方法はありますか?私は現在、システムブラウザーを起動していますが、正常に動作しますが、ナイスではありません(統合されているようには見えません)。
私はWebViewをかなり使用しましたが、通常、パフォーマンスは完全に良好で、非常に使いやすかったです。
WebViewで私が抱えていた最大の問題は、他のブラウザーほどEdge機能のカットや集中的な使用が安定していないことですが、実際には深刻なパフォーマンスの問題はありません。
以下は、いくつかのベンチマーク統計です(使用されるWebViewバージョンは、JavaFX 2.2ビルド9から供給されました):
コンプライアンス
html5 テストを実行してhtml5コンプライアンスをテストします(スコアは500)。
Chrome 19 402 + 13ボーナスポイント Firefox 12 345 + 9ボーナスポイント WebView 2.2b9 296 + 7ボーナスポイント IE 9.0.6 138 + 5ボーナスポイント
Acid テストを実行すると、webviewのスコアは他のテストブラウザーと同じ100/100ですが、IE9と同様に、最終的なレンダリングにはわずかな欠陥があります。
Javascript
Sunspider Javascriptベンチマーク(低いほど良い):
IE 9.0.6 146.7ms Chrome 19 151.5ms Firefox 12 185.8ms WebView 2.2b9 199.5ms
Google V8 Javascriptベンチマーク(高いほど良い):
Chrome 19 15323 Firefox 12 9557 WebView 2.2b9 5145 IE 9.0.6 3661
Mozilla Kraken Javascriptベンチマーク(低いほど良い):
Chrome 19 2416.8ms Firefox 12 2112.9ms WebView 2.2b9 7988.9ms IE 9.0.6 9403.0ms
集中的なキャンバス
回転 D仏 (高いほど良い):
Chrome 19 60fps Firefox 12 43fps IE 9.0.6 16fps WebView 2.2b9 7fps
JQuery
JQueryテストスイート 実行(低いほど良い):
Chrome 19 21826ms WebView 2.2b9 22742ms Firefox 12 23554ms IE 9.0.6 28247ms
上記のベンチマーク(Windows 7デスクトップで実行)に基づいて、WebViewが安定していて機能している限り、WebViewと他のブラウザーのパフォーマンスは問題になりません(アプリに多くの機能がない限り) 3D回転する仏像。。。:-).
更新
Utaの回答にあるように、JavaScript JITコンパイラは、JavaFX 2.2のWin 32ビットビルドではオンに、JavaFX 2.2の Win 64ビットビルドではオフ に切り替えられています。つまり、64ビットJavaFXバージョンと32ビットJavaFXバージョンを実行すると、WebView JavaScriptベンチマークが大幅に遅くなります(通常は4〜5倍遅くなります)。
Windows x64のWebNodeではJavaScript JITがオフになっています。それが問題の原因である可能性があります。
また、私のWebサイト( https://mdemo.cqg.com )のJavaFX WebViewのパフォーマンスの低下(速度の低下、再描画の問題)にも遭遇しました。グーグルの後でトピックに出くわしました JavaFX 2.0 WebViewをSwingに統合するJava SE 6アプリケーション 。答えの中にはJxBrowserを使用する提案があります( http://www.teamdev.com/jxbrowser )-Java用のChromiumベースのSwing/JavaFXコンポーネントです。自分のサイトで試してみました。サイトのパフォーマンスは良好です-速度低下や再描画の問題はありません(オリジナルで発生) WebView)。
この状況であなただけではありません。私はまだwebviewとgoogleマップに問題があります。以下のリンクをご覧ください。今のところ、私はあなたに何の答えもありません、そしてそれは私が知っている非常に不快です...
私の投稿の例:- https://community.Oracle.com/message/12356161
可能であれば、これを賛成してください:- https://javafx-jira.kenai.com/browse/RT-33217
JavaFX webViewが遅く見える理由の1つは、Webブラウザーとは異なり、何もキャッシュしないためです。これは補完する必要があります。