Application,Session,Cookie,ViewState,Cache的區別

來源:互聯網
上載者:User
 1.Application:用於儲存所有使用者共用的資料資訊。 在Asp.Net中類似的配置資料最好儲存在Web.config檔案中。如果使用Application對象,一個需要考慮的問題是任何寫操作都要在 Application_OnStart事件(global.asax)中完成。儘管使用Application.Lock和 Application.Unlock方法來避免寫操作的同步,但是它序列化了Application對象的請求,當網站訪問量大的時候會產生嚴重的效能 瓶頸。因此最好不要用此對象儲存大的資料集。
  使用如下:
  //存放資訊
  Application["nameID"]="0001";
  //讀取資訊
  String NameID=Application["nameID"].ToString();
  2.Session:用於儲存每個使用者的專用資訊。Session中的資訊儲存在Web伺服器的記憶體中,儲存的資料量可大可小。當Session逾時或被關閉時將自動釋放儲存的資料資訊。對於小量的資料Session對象儲存還是一個不錯的選擇。
  使用如下:
  //存放資訊
  Session["nameID"]="0001";
  //讀取資訊
  String NameID=Session["nameID"].ToString();
  3.Cookie: 用於儲存客戶瀏覽器請求伺服器頁面的請求資訊,其有效期間可以人為設定,而且其儲存的資料量很受限制,因此不要儲存資料集及其他大量資料。而且Cookie以明文方式將資料資訊儲存在用戶端的電腦中,因此最好不要儲存敏感的未加密的資料。
  使用如下:
  //存放資訊
  Response.Cookie["nameID"].Value="0001";
  //讀取資訊
  String NameID=Response.Cookie["nameID"].Value;
  4.ViewState: 常用於儲存單個使用者的狀態資訊,可以儲存大量的資料但是過多使用會影響應用程式的效能。所有Web伺服器控制項都使用ViewStat在頁面回傳期間儲存自 己的狀態資訊。每個控制項都有自己的ViewState,不用時最好關閉以節省資源。通過給@Page指令添加"EnableViewState= false"屬性可以禁止整個頁面的ViewState。
  使用如下:
  //存取資訊
  ViewState["nameID"]="0001";
  //讀取資訊
  string NameID=ViewState["nameID"].ToString();
  5.Cache:用於在Http請求間儲存頁面和資料。它允許將頻繁訪問的大量伺服器資源儲存在記憶體中,當使用者發出相同的請求時伺服器不再次處理而是將Cache中儲存的資訊返回給使用者,節省了伺服器處理請求時間。
  使用如下:
  //存放資訊
  Cache["nameID"]="0001";
  //存放資訊
  Cache.Insert("nameID","0001");
  //讀取資訊
  String NameID=Cache["nameID"].ToString();
  注意: 如果利用緩衝提供的清理、到期時間和依賴項等功能,必須使用Cache.Insert方法或Cache.Add方法添加資訊。
  6.隱藏欄位:Hidden控制項屬於Html類型的伺服器控制項,可以實現隱藏欄位的功能,他和其他的空間沒什麼區別只是不會在瀏覽器上顯示,始終處於隱藏狀態。
  使用如下:
  //存放資訊
  Hidden.Value="0001";
  //讀取資訊
  String NameID=Hidden.Value;
  7.查詢字串:將傳遞的值串連在URL後面,然後通過Response.Redirect方法實現用戶端的重新導向。
  傳遞方法如下:
  Response.Redirect("List.aspx?nameID=0001&gradeID=002");
  執行上面的語句後在IE地址欄顯示的URL的代碼如下:
  http://www.QQview.com/List.aspx?nameID=0001&gradeID=002
  當跳轉到List.aspx後,可以通過下面代碼獲得傳遞的資訊:
  String NameID,GradeID;
  NameID=Request.Params["nameID"];
  GradeID=Request["gradeID"];
  通過比較總結的每一種對象應用的具體環境:
  方法 資訊量大小 儲存時間 應用範圍 儲存位置
  Application 任意大小 整個應用程式的生命週期 所有使用者 伺服器段
  Session 小量,簡單的資料 使用者啟用時間+一般延遲時間(一般為20分鐘) 單個使用者 伺服器段
  Cookie 小量,簡單的資料 可以根據需要設定 單個使用者 用戶端
  Viewstate 小量,簡單的資料 一個Web頁面的生存周期 單個使用者 用戶端
  Cache 任意大小 可以根據需要設定 所有使用者 伺服器段
  隱藏欄位 小量,簡單的資料 一個Web頁面的生存周期 單個使用者 用戶端
  查詢字串 小量,簡單的資料 直到下次頁面跳轉請求 單個使用者 用戶端
  web.config檔案 不變或極少改變的小量資料 直到設定檔被更新 所有使用者

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.