亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

ASP.NET - Substitution Web 服務器控件概述

2019-11-17 04:01:16
字體:
來源:轉載
供稿:網友
您可以使用 Substitution 控件,在網頁上創建可動態更新并可隨后集成到緩存頁中的區域。



一、方案

使用 Substitution 控件可以在要緩存輸出的網頁上指定要顯示動態內容的部分。對于多數內容都要進行緩存的頁,Substitution 控件提供了進行部分頁緩存的簡化的解決方案。您可以緩存整個頁的輸出,然后使用 Substitution 控件來指定頁中不進行緩存的部分。緩存區域僅執行一次,且將一直從緩存讀取,直至該緩存條目到期或被清除。動態區域則在每次請求頁時都會執行。此緩存模型簡化了其內容主要是靜態內容的網頁的代碼,因為您不必在 Web 用戶控件中對這些靜態內容進行封裝,以將它們放入緩存。例如,對于包含靜態內容(如新聞故事)和顯示廣告的 AdRotator 控件的網頁,此緩存模型就非常有用。新聞故事不會經常更改,這意味著可以將它們放入緩存。您可能會希望在用戶每次請求該網頁時顯示一條新廣告。AdRotator 控件直接支持緩存后替換,無論是否緩存了網頁,它都會在網頁每次回發時呈現一個新廣告。



二、背景

緩存 asp.net 網頁時,默認情況下,會緩存該網頁的全部輸出。在第一次請求時,該頁將運行并緩存其輸出。對于后續的請求,將通過緩存來完成,該頁上的代碼不會運行。

在某些情況下,您可能不但希望緩存 ASP.NET 網頁,還希望在每次請求該網頁時更新該網頁上的選定部分。例如,您可能要緩存某頁的很大一部分,但需要動態更新該頁上的與時間高度相關的信息。

可以使用 Substitution 控件將動態內容插入到緩存頁中。Substitution 控件不會呈現任何標記。因此,您需要將該控件綁定到網頁或父級用戶控件中的方法。您需要創建可返回要插入到網頁中的信息的靜態方法。由 Substitution 控件調用的方法必須符合下面的標準:

      ·必須為靜態方法(在 Visual Basic 共享)。

·必須接受類型為 HttpContext 的參數。

·必須返回類型為 String 的值。

Substitution 控件無法訪問網頁上的其他控件,也就是說,您無法檢查或更改其他控件的值。但代碼卻可使用傳遞給它的參數來訪問當前網頁的上下文。

在頁運行時,Substitution 控件會調用該方法,然后用從該方法的返回值替換頁上的 Substitution 控件。



代碼示例

下面的示例演示如何使用 Substitution 控件在緩存頁上創建可動態更新的內容。頁的 Load 事件中的代碼用當前時間來更新 Label 控件。因為頁的緩存持續時間已設置為 60 秒,所以 Label 控件的文本不會更改,即使在 60 秒的時間內多次請求了該頁。頁上的 Substitution 控件調用靜態方法 GetTime,該方法將以字符串的形式返回當前時間。每次刷新網頁時,都會更新 Substitution 控件表示的值。

<%@ Page Language="C#" %>

<%@ OutputCache Duration=60 VaryByParam="None" %>



<script runat="server">

    void Page_Load()

    {

        Label1.Text = DateTime.Now.ToString();

    }

    

    public static String GetTime(HttpContext context)

    {

      return DateTime.Now.ToString();

    }

</script>

<html>

<head runat="server"></head>

<body>

    <form id="form1" runat="server">

    <div>

    <p>

    <asp:Label runat="server" ID="Label1" />

    </p>

    <p>

    <asp:Substitution runat="server"

        ID="Substitution1"

        MethodName="GetTime" />

    </p>

    <p>

    <asp:Button runat="server" ID="Button1" Text="Submit"/>

    </p>

    </div>

    </form>

</body>

</html>



三、Substitution 類

      使用 Substitution 控件指定輸出緩存網頁上要以動態內容替換該控件的部分。Substitution 控件為要緩存大部分內容的頁提供了一種緩存局部頁的簡化解決方案。可以對整頁進行輸出緩存,然后使用 Substitution 控件指定頁中免于緩存的部分。需要緩存的區域只執行一次,然后從緩存讀取,直至該緩存項到期或被清除。動態區域則在每次請求頁時執行。由于不必對這些部分進行封裝以緩存在 Web 用戶控件中,因此,此緩存模型簡化了主要是靜態內容的頁的代碼。例如,如果頁包含靜態內容(如新聞報道)和顯示廣告的 AdRotator 控件,這種情況下,此緩存模型就很有用。新聞報道不會更改,這意味著它們可以緩存。但是,您希望在用戶每次請求該頁時都顯示一條新廣告。AdRotator 控件直接支持緩存后替換,無論頁是否緩存,都在該頁回發時呈現一個新廣告。

      說明: 在緩存頁包含的用戶控件中可以放置 Substitution 控件。但是,在輸出緩存用戶控件中不能放置 Substitution 控件。

      Substitution 控件執行時,會調用一個返回字符串的方法。該方法返回的字符串即為要在頁中的 Substitution 控件的位置上顯示的內容。使用 MethodName 屬性指定要在 Substitution 控件執行時調用的回調方法的名稱。指定的回調方法必須是包含 Substitution 控件的頁或用戶控件的靜態方法?;卣{方法的簽名必須與接受 HttpContext 參數并返回字符串的 HttPResponseSubstitutionCallback 委托的簽名匹配。

若要操作頁的輸出緩存,可使用 @ OutputCache 指令、HttpCachePolicy 類或 Cache 屬性。

Substitution 控件的另一種使用方法是,使用 HttpResponseSubstitutionCallback 委托實現緩存替換行為。此外,還可以在直接支持緩存替換功能的控件(如 AdRotator 控件)上實現緩存替換行為。



示例

下面的代碼示例演示如何以聲明方式將 Substitution 控件添加到輸出緩存網頁。加載頁面時,將在一個標簽中向用戶顯示當前的日期和時間。頁面中的此區域僅 60 秒便緩存和更新一次。當 Substitution 控件執行時,將調用 GetCurrentDateTime 方法。GetCurrentDateTime 返回的字符串將顯示給用戶。每次刷新頁時,都不會緩存和更新頁中的這一部分。

<%@ outputcache duration="60" varybyparam="none" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"

    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<script runat="server" language="C#">  



  void Page_Load(object sender, System.EventArgs e)

  {

    // Display the current date and time in the label.

    // Output caching applies to this section of the page.

    CachedDateLabel.Text = DateTime.Now.ToString();    

  }



  // The Substitution control calls this method to retrieve

  // the current date and time. This section of the page

  // is exempt from output caching.

  public static string GetCurrentDateTime (HttpContext context)

  {

    return DateTime.Now.ToString ();

  }



</script>



<html  >

<head runat="server">

  <title>Substitution Class Example</title>

</head>

<body>

  <form id="form1" runat="server">



    <h3>Substitution Class Example</h3>  



    <p>This section of the page is not cached:</p>



    <asp:substitution id="Substitution1"

      methodname="GetCurrentDateTime"

      runat="Server">

    </asp:substitution>



    <br />



    <p>This section of the page is cached:</p>



    <asp:label id="CachedDateLabel"

      runat="Server">

    </asp:label>



    <br /><br />



    <asp:button id="RefreshButton"

      text="Refresh Page"

      runat="Server">

    </asp:button>     



  </form>

</body>

</html>
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩毛片在线观看| 欧美专区中文字幕| 久久精品视频va| 亚洲精品久久久久国产| 欧美在线日韩在线| 综合网日日天干夜夜久久| 日韩欧美在线视频观看| 亚洲国产精彩中文乱码av在线播放| 91社影院在线观看| 91国内揄拍国内精品对白| 在线电影欧美日韩一区二区私密| 韩国日本不卡在线| 国产精品999999| 国产精品无av码在线观看| 日韩免费av一区二区| 8050国产精品久久久久久| 久久综合免费视频影院| 6080yy精品一区二区三区| 久久精品影视伊人网| 久久久精品国产亚洲| 国产精品极品美女粉嫩高清在线| 欧美怡红院视频一区二区三区| 亚洲激情小视频| 欧美激情va永久在线播放| 黑人巨大精品欧美一区二区三区| 亚洲石原莉奈一区二区在线观看| 97人人爽人人喊人人模波多| 国产福利视频一区二区| 91成人免费观看网站| 欧美乱妇40p| 美日韩丰满少妇在线观看| 久久久女人电视剧免费播放下载| 日韩美女福利视频| 亚洲在线视频观看| 国产精品电影网站| 国产成人精品免高潮费视频| 美女福利精品视频| 羞羞色国产精品| 亚洲色图日韩av| 91免费看国产| 日韩一级裸体免费视频| 国产成人精品亚洲精品| 亚洲伊人久久大香线蕉av| 91免费高清视频| 不卡av电影在线观看| 亚洲а∨天堂久久精品喷水| 日韩av在线高清| 国产精品91一区| 久久99久久99精品中文字幕| 亚洲tv在线观看| 欧美在线免费观看| 久久国内精品一国内精品| 日韩国产中文字幕| 成人av色在线观看| 97免费视频在线| 国产成人aa精品一区在线播放| 欧亚精品中文字幕| 国产欧美日韩中文字幕在线| 在线亚洲午夜片av大片| 欧美激情第99页| 欧美激情免费观看| 国产亚洲日本欧美韩国| 国产免费一区二区三区在线能观看| 国产福利成人在线| 久久福利视频导航| 91国内精品久久| 精品国产区一区二区三区在线观看| 日韩av中文字幕在线免费观看| 在线观看久久久久久| 成人444kkkk在线观看| 国产v综合ⅴ日韩v欧美大片| 蜜月aⅴ免费一区二区三区| 国产亚洲精品91在线| 精品国产成人av| 日韩av资源在线播放| 久久成人国产精品| 国产成人aa精品一区在线播放| 欧美色播在线播放| 久久精品视频va| 亚洲精品二三区| 国产精品露脸自拍| 成人黄色生活片| 亚洲丝袜一区在线| 全球成人中文在线| 亚洲一区二区三区毛片| 中文字幕综合一区| 国产精品免费久久久久久| 91精品久久久久久久久久另类| 国产一区红桃视频| 日韩中文字幕亚洲| 欧美另类极品videosbest最新版本| 精品久久久久久久久久久久久久| 美女啪啪无遮挡免费久久网站| 国产成人激情视频| 亚洲国产成人久久| 久久亚洲精品国产亚洲老地址| 久久国内精品一国内精品| 欧美自拍视频在线观看| 深夜精品寂寞黄网站在线观看| 久久精品国产亚洲7777| 国产成人午夜视频网址| 福利一区视频在线观看| 影音先锋日韩有码| 亚洲精品suv精品一区二区| 欧美午夜丰满在线18影院| 黄色精品一区二区| 欧美激情xxxx| 国产欧美日韩亚洲精品| 欧美色道久久88综合亚洲精品| 日本不卡免费高清视频| 亚洲成人激情图| 欧美成人在线网站| 91久久久国产精品| 亚洲性视频网站| 欧美激情按摩在线| 亚洲国产日韩一区| 欧美性猛交xxxx偷拍洗澡| 亚洲欧美日韩中文在线| 亚洲色图欧美制服丝袜另类第一页| 性欧美亚洲xxxx乳在线观看| 亚洲美女av在线| 国产精品久久久久久久久粉嫩av| 国产精品久久久久久av福利| 国产精品美女免费看| 国产有码一区二区| 91成人福利在线| 欧美视频不卡中文| 2021国产精品视频| 日韩av色综合| 亚洲成人av资源网| 国产精品黄视频| 国产999精品久久久| 久久艹在线视频| 亚洲第一天堂av| 亚洲最大av在线| 精品偷拍一区二区三区在线看| 69**夜色精品国产69乱| 97超碰蝌蚪网人人做人人爽| 欧美极品欧美精品欧美视频| 97色在线播放视频| 成人精品视频久久久久| 日韩av免费在线播放| xxxxx91麻豆| 国产精品亚洲激情| 国产成人一区二区三区小说| 欧美亚洲成人精品| 992tv在线成人免费观看| 国产精品色婷婷视频| 91精品国产高清自在线| 欧美激情性做爰免费视频| 日韩av电影在线免费播放| 国产精品专区h在线观看| 国产视频自拍一区| 亚洲最大激情中文字幕| 97色在线视频观看| 亚洲美女黄色片| 国产亚洲人成a一在线v站| 亚洲综合色激情五月| 亚洲美女黄色片| 欧美成人午夜剧场免费观看| 青青久久aⅴ北条麻妃| 国产99视频精品免视看7| 国产激情综合五月久久| 精品国内亚洲在观看18黄|