當你想提高網站性能可以使用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應用程序狀態的對象之間的區別。
希望這對你有所幫助。
你是否看到這個?http://forums.asp.net/t/983735.aspx –