1

最近我遇到了一个jsp页面,我在其中看到

  1. 对同一个 bean使用<t:savestate>两次标记。
  2. 还使用<t:savestate>bean 的许多标签和许多该页面功能不需要但仍然存在于页面上的变量,只是过时了。

我的问题是<t:savestate>以上两种情况对性能/页面加载时间的观点有影响吗?

4

1 回答 1

1

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

如果我正确理解了它的实现(这里的源代码),它将保存您传递的每个值的副本,除非您传递的值是StateHolder的实例(如几个 JSF 组件,如输入、数据表等)。

因此,您可能会很好地删除不必要的标签,以便清理。但是,如果您主要关心的是性能,我不知道它是否会有很大的不同,并且您应该在开始出于性能原因进行更改之前进行配置。

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

于 2013-01-25T12:56:11.843 回答