2011-08-22 25 views
2

我正在構建一個檢票web應用程序。它顯示了一個DataView的「實體」列表,並顯示了一個細節頁面,它工作正常。只有數據庫中所需的行被加載到我的DataView中,所以性能很好。如何緩存一個檢票web應用程序中的複雜計算

我還可以在詳細信息頁面上顯示一個計算值,該值是從'實體'中即時生成的。但是當我想在我的列表頁面上總結這個計算值時,表中有幾百行時性能變差。這是因爲每個會話的整個表都會生成該值。

我應該緩存這個計算的值(如果是的話,我該如何做到這一點)還是最好在我的數據庫表中添加一個包含此值的列,這違反了DRY原則?

+0

沒有代碼顯示,我的答案會有些含糊,但一個單詞的答案是:模型。 – biziclop

+0

但模型會在會話中緩存嗎? –

+0

你是說,在不同的HTTP會話之間共享?不,絕對不是。所以基本上你需要一種方法來緩存應用程序級別的東西? – biziclop

回答

0

正如@biziclop所評論的,簡單緩存的解決方案是嚮應用程序類添加一個字段,該字段緩存計算出的值。這樣,計算必須在應用程序啓動和相關數據的每次更改上進行。