我正在使用Richfaces 4和Mojarra 2.0.4。如果答案特定于Richfaces 4框架,我会很高兴:)
我知道JSF组件是在服务器端处理的。我的一些页面实际上是以数据为中心的。因此,当我加载该页面时(例如:在带有switchType ajax的richTab中),我的bean需要花费大量时间来执行标有@PostConstruct
的方法来执行和获取数据。因此,用户单击选项卡标题与实际页面呈现之间的时间间隔非常大,用户体验非常糟糕。我已经为页面中的dataTable实现了延迟加载,但由于@PostConstruct
仍然存在,因此仍然无法优化页面加载时间。
无论如何我可以先加载页面,然后用ajax获取数据并更新页面?这个加载时间对用户来说真的很烦人。任何帮助都赞赏:)
PS:我想过使用oncomplete
的{{1}}和onbeforedomupdate
客户端事件,并调用用rich:tab
声明的ajax函数。但似乎这些事件在实际切换页面之前被触发了。
答案 0 :(得分:1)
在html中使用onload
标记的<body>
事件以及<a4j:jsFunction>
如果您仍然觉得在调用方法之前页面没有完全渲染,请使用setTimeout('a4jfunctionName',10)
中的onload
javascript函数首先完成渲染。