HttpContext
類的Cache
和Items
屬性有什麼區別?HttpContext的緩存和項目屬性有什麼區別?
從MSDN文檔:
緩存
獲取當前應用程序域的高速緩存對象。物品
獲取一個密鑰/值集合可用於HTTP請求期間,組織和共享IHttpModule的接口和IHttpHandler接口之間傳輸數據。
我真的不明白該文檔試圖解釋什麼。
在處理ASP.NET Web應用程序時,我經常使用Items
進行數據的每個請求緩存,以便多個用戶控件最終不會從數據庫中查找相同的數據。這在this article中描述。
今天,我遇到了Cache
屬性的用法,看起來像什麼,按請求緩存。我試圖瞭解其中的差異,但找不到比較這兩者的好文件。所以我想知道...
HttpContext的緩存和項目屬性有什麼區別?請嘗試詳細說明的示例,爲什麼您會選擇在不同的真實世界場景中使用一個。
是否有任何關於用於分區'Cache'數據的請求?我們有一個網絡應用程序,它爲許多不同的域提供請求,每個用戶有一個域。看起來我所維護的代碼依賴於不同的域來分隔每個用戶的緩存數據。我的意思是用戶特定的數據存儲在緩存中,沒有任何用戶ID或密鑰中的任何內容。這怎麼可能工作?另外,在我鏈接的文章中,他們在'Items'鍵中使用了userID,這會讓我覺得'Items'是在很多用戶的請求中共享的。現在我比以前更困惑...... –
緩存或會話,因爲會話是用戶特定的。您還可以通過將用戶ID附加到緩存鍵來使用戶特定的緩存...然後每個用戶都可以擁有自己的緩存專用條目。在您提供的文章中,他們提供的方法提供了一種方法,您可以將HttpContext.Items中的數據共享到多個用戶控件或自定義控件,但僅限於該用戶的當前請求。然後,Items集合將在每個請求上生成,因此數據將在下一個請求中再次可用。 –