最近发现程序的响应速度极其慢,然后调试发现,程序有的地方本应读取一次数据库的地方,读了好几次,这样势必造成性能上的响应问题。
造成此问题的原因,发现是由于tapestry自身的机制造成的。
下面给一点小小的源码进行对比:
重复读取数库:
解决方法:在Page类中定义一个变量
鉴于以上示例,重复读取数据库的问题得到解决。 :-)
不知道各位还有没有什么好久解决办法,可以拿来互相探讨一下
造成此问题的原因,发现是由于tapestry自身的机制造成的。
下面给一点小小的源码进行对比:
重复读取数库:
public List getRecordsFromDB() {
return "返回数据库查找到的记录集";
}
/*在该方法里设置段点时,将查找数据库四次*/
解决方法:在Page类中定义一个变量
public List records = null;
public void pageBeginRender(PageEvent event) {
if(records == null) {
records = getRecordsFromDB();
}
}
/*在getRecordsFromDB()中设置段点,将执行一次*/
public void pageEndRender(PageEvent event) {//一定要在页面显示完后进行销毁
records = null;
}
鉴于以上示例,重复读取数据库的问题得到解决。 :-)
不知道各位还有没有什么好久解决办法,可以拿来互相探讨一下