最近我遇到了一个jsp页面,其中我看到了
<t:savestate>
标签对同一豆子使用两次。- 还使用了 bean 的许多
<t:savestate>
标签和许多变量,这些变量不是该页面功能所必需的,但仍存在于页面上,只是过时了。
我的问题是<t:savestate>
上述两种情况对性能/页面加载时间有什么影响吗?
> t:savestate
的作用是通过将数据保存在视图范围内,方法是将值表达式生成的值存储在组件本身中。因此,虽然它确实对性能有一些影响,但它主要取决于对象的大小(和数量)。
如果我正确理解了它的实现(源代码在这里),它将保存你传递的每个值的副本,除非你传递的值是 StateHolder 的实例(如几个 JSF 组件,如输入、数据表等)。
因此,您可能会很好地删除不必要的标签,以清理内容。但是,如果您主要关心的是性能,我不知道它是否会产生太大差异,出于性能原因,您应该在开始进行更改之前进行分析。
另外,请务必注意重复的t:saveState
标签是否位于同一h:form
内。如果它们在不同的h:form
,则两个地方都可能需要它们。