我注意到在 InternetExplorer 和 Chrome 中加载我的页面最多会触发 3 次 JSF 生命周期,因为触发了多个 HTTP 请求。然而,我的调试输出仅出现在第一个生命周期中。(对于 Firefox,只有一个生命周期)
由于问题在 Firefox 中不存在,我认为这不是服务器端问题(例如,附加一个 phaselistener 2 次可能是一个)
因此,Chrome 和 IE 需要进行一些调用,这些调用会导致对某些实际上不需要的服务器资源的请求。
最大的问题是:什么样的组件/标签可能会导致另一个 HTTP 请求,为什么它在没有这些额外请求的情况下在 Firefox 中工作?我读到没有 url 属性的图像标签可能会导致这种行为,因为浏览器再次请求索引文件。然而,Chrome 的网络诊断不会显示任何无效图像,也不会显示对其中一个 xhtml 站点的双重请求。
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 --