2013-02-01 27 views
5

我們經常在asp.net webform項目中使用會話,緩存和配置文件。我們經常在asp.net webform項目中存儲會話,緩存和配置文件中的數據,但我想知道應該在會話中存儲數據的時間,還是應該在緩存和配置文件中存儲數據的時間。什麼是緩存或配置文件的範圍。這兩個也是會話特定的生命期或特定應用程序。asp.net中會話,緩存和配置文件的區別

假設如果我將任何數據存儲在緩存或配置文件從會話1然後我可以從session2訪問該數據或不。只是以場景&指導我時,我們應該將數據存儲在會話,緩存和配置文件中。感謝

+0

你是否看到這個?http://forums.asp.net/t/983735.aspx –

回答

14

當你想提高網站性能可以使用cache通常是:減少數據庫調用,訪問文件系統上的文件,調用外部服務等

Scenario 1:假設有是有一個頁面,列出了所有的應用程序產品存儲在數據庫中。用戶需要產品列表過濾功能(例如在eBay或亞馬遜上)。此外,衆所周知,與產品列表頁面使用頻率相比,產品和產品功能列表很少發生變化。

Solution 1:在這裏,您可以使用cache來減少數據庫調用。您將產品列表和產品功能部件放到cache中,以在內存中執行過濾並避免冗餘數據庫調用。每當產品列表或功能改變時,Cache應該失效。這個解決方案應該是正常的,直到內存消耗處理比性能增加更便宜。

作爲一個很好的資源,我建議閱讀ASP.NET Caching: Techniques and Best Practices MSDN文章。


profile您通常保存,專用於具體的用戶數據,並應在每次用戶登錄到系統中可用。

Scenario 2:考慮到您的應用程序與Scenario 1中的應用程序相同,但您現在需要爲用戶提供保存其過濾器首選項(喜歡的過濾器列表的種類)的功能。

Solution 2:您可以創建一種過濾器狀態類並將其存儲在用戶profile中。因此用戶不會在一次又一次的指定濾波器參數懶得和這些偏好會在每次用戶登錄使用。


Session用於存儲用戶特定的信息,可能是從所有網絡訪問並且在下次用戶登錄時將不需要。

Scenario 3:假設有一些電子商務應用程序和市場營銷人員希望以近實時方式查看網站上發生的事情,即查看訪問過哪些頁面特定用戶在登錄時出現。將這種情況考慮爲選定的用戶活動快照。

Solution 3:在這裏,您可以使用session來記錄用戶訪問過的網址,然後爲營銷人員生成報告。

至於狀態管理,你也可以參考另一個MSDN文章ASP.NET State Management Overview


Another good answer它突出了管理asp.net應用程序狀態的對象之間的區別。


希望這對你有所幫助。

+0

配置文件是會話特定的...如果不是那麼我們如何才能從另一個會話訪問一個配置文件數據。你可以用示例代碼來指導這一點。 – Thomas

+1

@Thomas Profile是一個用戶特定的數據,可以持久保存,因此不會在會話之間丟失。默認配置文件提供程序在數據庫中存儲配置文件數據看看http://stackoverflow.com/questions/426609/how-to-assign-profile-values。這個問題有代碼示例。 –

相關問題