ASP.NET WP - 快取



當有人請求您網站上的頁面時,Web伺服器必須進行一些工作才能滿足請求。因此,伺服器可能必須執行一些需要很長時間的任務,例如從資料庫檢索資料。

  • 在某些情況下,如果您的網站訪問量很大,一系列導致 Web 伺服器執行復雜或緩慢任務的單個請求會累積大量工作。

  • 這最終會影響網站的效能。

  • 提高網站效能的一種方法是快取資料。

  • 當您的網站收到對相同資訊的重複請求時,並且該資訊不需要為每個人修改,並且它不是時間敏感的,因此您可以一次獲取資料並存儲結果,而不是重新獲取或重新計算它。

  • 下次請求該資訊時,您只需從快取中獲取它。

如何快取資料?

讓我們來看一個簡單的示例,在這個示例中,我們將在頁面第一次載入時快取資料。因此,讓我們建立一個新的 CSHTML 檔案,命名為 **WebCache.cshtml**,並替換以下程式碼。

@{
   var cacheItemKey = "CachedTime";
   var cacheHit = true;
   var time = WebCache.Get(cacheItemKey);
   
   if (time == null){
      cacheHit = false;
   }
   
   if (cacheHit == false){
      time = @DateTime.Now;
      WebCache.Set(cacheItemKey, time, 1, false);
   }
}

<!DOCTYPE html>
<html>
   
   <head>
      <title>WebCache Helper Sample</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>
         This page was cached at @time.
      </div>
   
   </body>
</html>
  • 正如您在上面的程式碼中看到的,當我們快取資料時,我們將使用在整個網站中唯一的名稱將其放入快取中。在本例中,我們將使用名為 **CachedTime** 的快取條目。這是 **cacheItemKey**。

  • 程式碼首先讀取 CachedTime 快取條目。如果返回一個值,程式碼只需將 time 變數的值設定為快取資料。

  • 但是,如果快取條目不存在,程式碼將設定 time 值,將其新增到快取中,並將過期值設定為一分鐘。

  • WebCache.Set(cacheItemKey, time, 1, false) 顯示如何將當前時間值新增到快取中並將其過期時間設定為 1 分鐘。

讓我們執行應用程式並指定以下網址 - **https://:50180/WebCache.cshtml**,您將看到以下頁面。

Web Cache

現在,讓我們在一分鐘內重新整理您的頁面,您將看到相同的時間,這是因為時間是從快取中載入的。

WebCache Helper
廣告
© . All rights reserved.