2

9 つの InputText ボックスと 2 つの InputSecret ボックスを含む JSF ページがあります。これらの各ボックスには、プロパティ ファイル、バリデータ (メッセージ付き) に接続されたラベルがあり、名前付きセッション スコープ Bean に接続された EL 式が含まれています。アプリケーション サーバーとして Glassfish 3.1.2.1 を使用しています。project_stage を Development に設定している場合、このページが読み込まれるか更新されると、フラッシュが目立つようになります。これは非常に迅速に発生しますが、ページが読み込まれる前に背景 (本文) が白にクリアされているように見えます。プロジェクト ステージを Production に設定すると、フラッシュが表示されません。この動作を引き起こす Project_Stage 開発は何を行っていますか?

4

1 に答える 1

3

これは、HTTP 応答から受信した最初のバイトと最後のバイトの間に時間がかかる場合のブラウザー固有の動作です。一部のブラウザでは、最初のバイトを受信すると空白になり、最後のバイトを受信すると新しいページ全体が表示されます。人間の目は、約 25 fps のフレーム レートを持っています (テレビが使用しているように)。それよりも速く進むものは、人間には認識されません。しかし、それよりも遅くなると、ブランクアウトが表示されます。

開発段階では、一部のパーツがキャッシュされないため、Facelets ソース ファイルなど、ソース ファイルに加えられた最新の変更がすぐに表示されます。それらはすべて、リクエストごとに再コンパイルおよび再解析されます。これらすべてにより、ページの読み込み時間が少し長くなるため、ブラウザのブランクアウトが約 1/25 秒より長く表示されるとすぐに表示されます。

Facelets のバッファー サイズを、最大の HTML 出力のサイズに合わせて大きくすることを検討してweb.xmlください。これにより、応答が分割送信されるのではなく、一度に送信されるため、前処理に時間がかかる場合があります。

例: 64KB:

<context-param>
    <param-name>javax.faces.FACELETS_BUFFER_SIZE</param-name>
    <param-value>65535</param-value> <!-- 64KB -->
</context-param>
于 2013-03-13T14:43:13.273 に答える