0

我有一個即將完成的電子商務MVC4項目。我用outputcache使用sqldependecy。但是,這最好的方法是什麼? 產品詳細頁面?有產品清單的 類別頁面? 過濾頁面? bla bla用於電子商務項目的Mvc 4緩存數據庫

你能幫我緩存嗎? (我在我的項目中使用SQL Server與LINQ到SQL) 示例;

[的OutputCache(持續時間= Int32.MaxValue,的SqlDependency = 「演示:產品」)]

公共的ActionResult的GetProducts(INT ID,INT lastid,串濾波器) {

我得到從數據sql與參數。

}

是對的還是應該緩存查詢數據bla bla? lastid用於分頁。過濾器數據的過濾器參數。 ID意味着categoryid

回答

0

讓我們從頭開始:我假設你想優化你的網上商店,這就是爲什麼你需要一些緩存機制。 您已選擇使用OutputCache,因爲它易於使用,並且可直接使用。 正如您可能知道OutputCache緩存來自服務器的響應,因此它不直接與緩存sql查詢或一般數據連接。因此,我首先推薦考慮你真正需要什麼類型的緩存 - 輸出緩存(位於System.Web.Configuration.OutputCacheSection),數據緩存(位於System.Web.Caching.Cache)還是兩者?

我們假設您已經選擇了OutputCache。您需要確保所有可以更改服務器響應的內容都應該作爲緩存參數發送。所以在產品頁面的情況下,這可能至少是一個ProductId,在CategoryPage(ProductListPage)的情況下,這可能是CategoryId,PageId,PageSize,一些排序參數,過濾器參數(如果使用過濾)等。

您需要考慮的參數越多,耗時越長,將緩存所有可能的參數組合。 作爲一個例子,我會使用產品頁面的OutputCaching,但我會考慮將其用於CategoryPage(ProductListPage),尤其是在使用過濾器,分頁,排序等情況下。

+0

感謝您的回覆。正如你所說,我需要優化我的網上商店。使用sql依賴性很容易使用outputcache機制。但正如你所說,由於尋呼和過濾bla bla,它對於類別(產品列表)頁不明智。在這種情況下,我應該使用什麼?如果我緩存每個頁面查詢中的命令,我需要再次緩存。在輸出緩存中相同。我應該用sqldependecy使用varybyparam嗎?我需要數據緩存。 – hozkaya

相關問題