我们正在开发一个Java Web应用程序,它利用JSF(Richfaces通过Seam)来实现其UI。我读过几篇文章,指出在UI组件上使用“rendered =”属性会导致相当大的性能损失。我们有几个组件,我们想根据它们的值是否设置来启用或禁用。例如,如果我们要显示待售商品,我们就不会为未设置的属性设置一堆空白字段。
然而,鉴于这种性能影响,我们对使用多个“渲染”字段感到担忧。有更好的替代品吗?我们可以采取哪些措施来提高使用该字段的性能吗?
答案 0 :(得分:4)
如果getter只是返回一个(缓存的)boolean属性,那么我真的没有看到任何痛苦。除此之外别无选择。最好的方法是将其缓存在模型(延迟加载)或视图(c:set
)中。反过来,getter方法调用的成本完全可以忽略不计。
答案 1 :(得分:0)
任何其他方式都不会是免费的..所以我只是使用标准的JSF方式隐藏/显示组件。
答案 2 :(得分:0)
您可以使用style="display : (#{bean.booleon} ? block : none)"
JSF代码。