天天看點

HttpContext中的Cache與Items

1.HttpContext.Cache

有關緩存,可以參考這篇文章:http://www.cnblogs.com/abac/archive/2004/02/11/1166.aspx

它提到:

在Asp.net中,提供了專門用于緩存資料的Cache對象,它的應用範圍是應用程式域。生存期是和應用程式緊密相關的,每當應用程式啟動的時候就重新建立Cache對象。它域Application對象的主要差別就是提供了專門用于緩存管理的特性,比如依賴和過期政策。

你可以使用Cache對象和它的屬性來實作進階的緩存功能,同時可以利用Asp.net Cache來對用戶端輸出的響應内容進行緩存。

2.HttpContext.Items

參考文章:http://odetocode.com/Articles/111.aspx

它提到:

First, let’s be clear and state that what you keep in the Items collection will have a very limited scope. Anything you place into the Items collection will only be around for the duration of a single web request, unlike the Session collection, which will keep it’s contents around for each user as long as they continue to make requests. Nevertheless, we will demonstrate several useful techniques with the Items collection in this article.

HttpContext.Items的作用域是一個獨立的Web請求。有關它的作用域,它舉了個例子:

在頁面WebForm1.aspx的Page_Load中加入:

...

Context.Items["WebForm1List"] = list;

Server.Transfer("WebForm2.aspx");

然後在WebForm2.aspx的Page_Load中加入:

ArrayList list = Context.Items["WebForm1List"] as ArrayList;

結果運作正常,但将Server.Transfer換成Response.Redirect就不行了原因是重定向使用了新的HTTP request然後将會有新的Context而此時的Context并不是原先我們在WebForm1.aspx中放有list的Context了。