t:jsf中的savestate - 对页面加载时间的影响

时间:2013-01-25 11:43:47

标签: jsf

最近我遇到了一个jsp页面,在那里我看到了

  1. 对同一个bean使用<t:savestate>标记两次。
  2. 对于bean和许多变量使用许多<t:savestate>标签,这些变量不是页面功能所必需但仍然存在于页面上,只是过时了。
  3. 我的问题是<t:savestate>对上述两种情况的性能/页面加载时间点有什么影响?

1 个答案:

答案 0 :(得分:1)

t:savestate通过将值表达式的结果值存储在组件本身中来保存视图范围中的数据。因此,虽然它肯定会对性能产生一些影响,但它主要取决于对象的大小(和数量)。

如果我已正确理解其实现(source code here),它将保留您传递的每个值的副本,除非您传递的值是{{3}的实例(像几个JSF组件,如输入,数据表等)。

所以,你可能会在删除不必要的标签方面做得很好,以便清理。 但如果你主要担心的是表现,我不知道它是否会有很大的不同,你应该在开始因性能原因做出改变之前进行描述。

另外,请务必注意重复的t:saveState代码是否在同一h:form内。如果它们位于不同的h:form中,则可能在两个地方都需要它们。