複数の HTTP 要求が発生するため、InternetExplorer と Chrome でページをロードすると、JSF ライフサイクルが最大 3 回トリガーされることに気付きました。ただし、デバッグ出力は最初のライフサイクルにのみ存在します。(Firefox の場合、ライフサイクルは 1 つだけです)
問題はFirefoxには存在しないため、サーバー側の問題ではないと思います(たとえば、フェーズリスナーを2回接続することは1つの可能性があります)
そのため、実際には誰も必要としないサーバーリソースへのリクエストを引き起こしている Chrome と IE による呼び出しが必要です。
大きな問題は、どのような種類のコンポーネント/タグが別の HTTP リクエストを引き起こす可能性があるか、そしてそれらの追加のリクエストがなくても Firefox で機能するのはなぜですか? ブラウザがインデックスファイルを再度要求しているため、url 属性のないイメージタグがこのような動作を引き起こす可能性があることを読みました。ただし、Chrome のネットワーク診断では、無効な画像は表示されず、xhtml サイトの 1 つに対する二重のリクエストも表示されません。
IE の例:
13:56:14,046 INFO [stdout] (http--0.0.0.0-8090-18) -- Started Request --
13:56:14,046 INFO [stdout] (http--0.0.0.0-8090-18) ---- Started RESTORE_VIEW 1 ----
13:56:14,048 INFO [stdout] (http--0.0.0.0-8090-18) ---- Started RENDER_RESPONSE 6 ----
13:56:14,100 INFO [stdout] (http--0.0.0.0-8090-18) xybean constructed
13:56:14,712 INFO [stdout] (http--0.0.0.0-8090-18) -- Finished Request --
13:56:15,106 INFO [stdout] (http--0.0.0.0-8090-10) -- Started Request --
13:56:15,106 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started RESTORE_VIEW 1 ----
13:56:15,108 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started APPLY_REQUEST_VALUES 2 ----
13:56:15,110 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started PROCESS_VALIDATIONS 3 ----
13:56:15,111 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started UPDATE_MODEL_VALUES 4 ----
13:56:15,112 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started INVOKE_APPLICATION 5 ----
13:56:15,114 INFO [stdout] (http--0.0.0.0-8090-10) ---- Started RENDER_RESPONSE 6 ----
13:56:15,115 INFO [stdout] (http--0.0.0.0-8090-10) -- Finished Request --
Firefox で同じページを呼び出す:
14:03:33,443 INFO [stdout] (http--0.0.0.0-8090-2) -- Started Request --
14:03:33,443 INFO [stdout] (http--0.0.0.0-8090-2) ---- Started RESTORE_VIEW 1 ----
14:03:33,444 INFO [stdout] (http--0.0.0.0-8090-2) ---- Started RENDER_RESPONSE 6 ----
14:03:33,496 INFO [stdout] (http--0.0.0.0-8090-2) xybean constructed
14:03:34,258 INFO [stdout] (http--0.0.0.0-8090-2) -- Finished Request --