首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 狀態管理:HttpContext.Items 暫存狀態

     編輯:關於ASP.NET

什麼是暫存狀態?

HttpContext.Items 屬性提供一個鍵/值集合,生命週期僅限於**單一 HTTP 請求處理期間**。請求結束後自動清除,極適合在同一請求的不同模組(IHttpModule、IHttpHandler、頁面、User Control)間傳遞資料。

典型使用場景:Server.Transfer 跨頁傳資料

// 頁面 A.aspx - 點擊按鈕轉向 B.aspx
public void Submit_Click(Object sender, EventArgs E) {
    SqlConnection conn = new SqlConnection("...");
    SqlDataAdapter da = new SqlDataAdapter("select * from Authors", conn);
    DataSet ds = new DataSet();
    da.Fill(ds, "Authors");
    
    // 存入暫存
    Context.Items["MyData"] = ds;
    Server.Transfer("B.aspx");
}

// 頁面 B.aspx - 讀取暫存
public void Page_Load(Object sender, EventArgs E) {
    if (!IsPostBack) {
        DataSet ds = (DataSet)Context.Items["MyData"];
        // 後續處理...
    }
}

優缺點總結

優點缺點
無需 Session/Application 鎖定開銷僅限單一請求,不支援跨請求
自動清理,無記憶體洩漏風險Server.Transfer 時 URL 不變,書籤/重新整理易混淆
型別任意,靈活度高大量資料仍佔用請求執行緒記憶體
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved