• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    ASP.NET狀態保存提高每個請求的性能

    發布: 2008-5-07 13:37 | 作者: 網絡轉載 | 來源: 本站原創 | 查看: 66次 | 進入軟件測試論壇討論

    領測軟件測試網  隨著時代車論的推進,先進社會的系統越來越基于WEB模式了,在一個WEB系統中,我們經常需要在系統里保存一些狀態值.那么在ASP.NET里保存狀態又有那些方法呢?既然WEB系統是B/S模式,那么我們的狀態理所當然地可以保存在服務器或客戶端,于是產生了客戶端保存和服務器端兩種保存方式.

      我們首先看使用服務器端保存方式.

      服務器端保存方式一般有如下3種:

      存儲頁信息的服務器端選項往往比客 戶端選項具有更高的安全性,但它們可能使用更多的 Web 服務器資源,這可能在信息存儲量較大時導致可縮放性問題。

      1,Application:

      利用場合:所有的請求都會需要的一些共有資源,由最先的一個請求率先獲取之后,拿出來共享,其他的請求就不用浪費資源進行再次獲取。典型利用場合:一個股市 Web 站點可能在一天中每 5 分鐘從數據庫獲取大量的金融股票信息(也許是 40 MB 的數據),然后將這些信息緩存在應用程序狀態中,這樣所有以后的查找請求都可以在應用程序狀態中訪問這些信息。其結果是極大地提高了每個請求的性能,因為傳入的請求不需要跨進程、跨計算機或數據庫的往返過程。
    '首次Http Get請求 If Not Me.IsPostBack Then '先判斷Application中是否已経有了緩存 If Application.Item("Database") Is Nothing Then '若沒有,從DataCenter中獲取 Dim ds As New DataSet ds.ReadXml(Server.MapPath("TestData.xml")) Dim dv As New DataView(ds.Tables(0)) '拿到之后, 緩存到Application,方便別的進程Http Get請求復用 Application.Add("DataBase", dv) End If Dim dv1 As DataView dv1 = Application.Item("DataBase") '緩存到Session, 方便當前進程的Http Post請求 Session.Add("DataBase", dv1) End If
      優點:易于實現,全局范圍。

      缺點:持久性,若 保存數據的服務器端進程被強行關閉,那么數據就會丟失,所以利用Application一定要有保底的策略,有的話就使用,沒有的話就自己拿。耗用服務器端的內存。

      注意:因為Application中的數據被多個進程公用,所以若需要更新其中的值時,需要利用 如下的語句,做到獨占更新:
    Application.Lock() Application.Item("DataBase ") = NewDataBase Application.UnLock()
      2,Session:

      利用場合:單獨的一個進程內部使用,存儲單獨會話的短期的、敏感的數據。

      優點:易于實現,持久性,可以應對IIS重啟和輔助進程重啟, 可在多進程中使用

      缺點:耗用服務器端的內存。

      3,Database:

      優點:安全性。 容量。 持久性。 可靠性和數據完整性。 可訪問性。 廣泛支持。

      缺點:復雜,性能

      方法:使用場合

      應用程序狀態:存儲更改不頻繁的全局信息,這些信息由多個用戶使用,此時安全性不成為問題。不要在應用程序狀態中存儲大量的信息。

      會話狀態:存儲特定于單獨會話的短期信息,并且需要較高的安全性。不要在會話狀態中存儲 大量的信息。在支持許多用戶的應用程序中,這可能會占用大量服務器資源并影響可縮放性。

      數據庫支持:存儲大量信息,管理交易,或者信息必須可以經受得住應用程序和會話重新啟動。數據挖掘十分重要,并且需要較高的安全性。

    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>