熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> ASP編程 >> 正文

利用緩存來提高網站的性能

2013-11-15 12:54:28  來源: ASP編程 

  您可以提高您站點的訪問速度那麼就需要用到cache(緩存)通常可以我們使用cache來處理經常檢索的結果或不經常改變的數據結果
   
    你將學習
   
    <![if !supportLists]>l  <![endif]>如何使用緩存來提高網站的響應速度
   
    本章介紹的功能
   
    <![if !supportLists]>l  <![endif]>WebCache helper
   
    緩存來提高網站的響應
   
    每當人們請求您站點中的頁面時Web服務器都會做一些工作以便執行請求對於其中一些包括有服務器端執行代碼的頁面Web服務器可能會執行很長時間來完成任務比如從數據庫中檢索數據這些任務獲取在較少數量的的請求時並不需要太長的時間但是如果網上有了大量的流量所有用戶都進行了獨立請求的時候會導致Web服務器增加很多的工作從而使執行速度變的緩慢這最終會影響到網站的性能
   
    在這種情況下改善您網站性能的方法之一便是緩存數據如果您的網站上有在請求時響應的是相同數且數據並不需要針對個人進行改變另外在時間上也並不敏感那麼我們可以將數據緩存在用戶每次請求時並不在Web服務器上重新計算而是在第一次訪問時就將數據放到緩存中在下一次請求時只獲取緩存中的數據
   
    在一般情況下您緩存的信息並不經常改變當你把信息放到緩存它將存儲在Web服務器上的內存中你可以指定它應該被緩存多久從幾秒鐘到幾天當緩存期限到期該信息自動從緩存中刪除
   
    注意    緩存中的項目並沒有過期但可能會因為其他原因可能會被刪除例如Web服務器可能暫時低位運行內存它回收內存的方法之一便是移出緩存項正如你看到的即使你放入緩存信息你必須檢查以確保它在您使用時仍然存在
   
    想象您的網站有一個頁面顯示當前的溫度和天氣預報為了得到這種類型的信息您可能會發送一個請求到外部服務因為這個信息並不需要有太大的改變(例如在兩個小時內)因為和外部請求服務需要時間和帶寬所以這是一個很好的被緩存項目
   
    ASPNET包括WebCache helper使得您很容易地將緩存功能添加到網站並添加到緩存中的數據在此過程中您將創建一個頁面用來緩存的當前的時間當然這不是一個真實的例子因為當前的時間是不經常改變而且不需要復雜的計算然而這是一個很好的方式來說明緩存在工作
   
    <![if !supportLists]>         <![endif]>添加一個新頁面網站名為WebCachecshtml
   
    <![if !supportLists]>         <![endif]>在頁面中添加以下代碼和標記
   
    @{
   
    var cacheItemKey = Time;
   
    var cacheHit = true;
   
    var time = WebCacheGet(cacheItemKey)
   
    if (time == null) {
   
    cacheHit = false;
   
    }
   
    if (cacheHit == false) {
   
    time = @DateTimeNow;
   
    WebCacheSet(cacheItemKey time false)
   
    }
   
    }
   
    <!DOCTYPE html>
   
    <html>
   
    <head>
   
    <title>WebCache Helper 例子</title>
   
    </head>
   
    <body>
   
    <div>
   


    @if (cacheHit) {
   
    @:Found the time data in the cache
   
    } else {
   
    @:Did not find the time data in the cache
   
    }
   
    </div>
   
    <div>
   
    頁面上的時間被組成存為 @time
   
    </div>
   
    </body>
   
    </html>
   
    在cacheItemKey代碼示例中使用time定義了一個緩存項當您緩存數據時需要為緩存定義一個名稱在整個網站中這個緩存是獨立存在的
   
    該代碼首先讀取time緩存項中的值如果返回值不為空說明代碼從緩存項目中獲取了time緩存並保存到變量time中
   
    然而如果緩存條目不存在(也就是說它是空的)代碼會設置time的值為當前時間將它添加到緩存中並設置一分鐘的到期時限如果頁面請求沒有在一分鐘之內進行那麼緩存中的項目將被丟棄(默認緩存項到期時間是分鐘)
   
    此代碼說明的問題是您應該總是使用時緩存數據在您得到的新的緩存之前總是先檢查WebCacheGet方法是否返回null值請記住緩存條目可能因為其他一些原因已過期或可能已被刪除所以從來不能保證任何給定的項目在緩存一直存在
   
    <![if !supportLists]>         <![endif]>在浏覽器中運行WebCachecshtml(請確保頁面在選定的工作區中然後再運行它)當您第一次請求頁面時時間數據不在緩存中代碼將添加時間值到緩存中

  \
    <![if !supportLists]>         <![endif]>在浏覽器中刷新WebCachecshtml這一次時間數據是從緩存中獲取的請注意你最後一次浏覽網頁以來的時間一直沒有改變

  \
    <![if !supportLists]>         <![endif]>等待一分鐘後緩存被清空然後刷新頁面再次表明時間數據在緩存中沒有找到更新的時間將被添加到緩存項中


From:http://tw.wingwit.com/Article/program/ASP/201311/21861.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.