2011-08-22 21 views
2

我正在构建一个检票web应用程序。它显示了一个DataView的“实体”列表,并显示了一个细节页面,它工作正常。只有数据库中所需的行被加载到我的DataView中,所以性能很好。如何缓存一个检票web应用程序中的复杂计算

我还可以在详细信息页面上显示一个计算值,该值是从'实体'中即时生成的。但是当我想在我的列表页面上总结这个计算值时,表中有几百行时性能变差。这是因为每个会话的整个表都会生成该值。

我应该缓存这个计算的值(如果是的话,我该如何做到这一点)还是最好在我的数据库表中添加一个包含此值的列,这违反了DRY原则?

+0

没有代码显示,我的答案会有些含糊,但一个单词的答案是:模型。 – biziclop

+0

但模型会在会话中缓存吗? –

+0

你是说,在不同的HTTP会话之间共享?不,绝对不是。所以基本上你需要一种方法来缓存应用程序级别的东西? – biziclop

回答

0

正如@biziclop所评论的,简单缓存的解决方案是向应用程序类添加一个字段,该字段缓存计算出的值。这样,计算必须在应用程序启动和相关数据的每次更改上进行。