<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識百科 - 正文

        ASP.NET 2.0中的頁面輸出緩存

        來源:懂視網(wǎng) 責(zé)編:小采 時間:2020-11-27 22:45:51
        文檔

        ASP.NET 2.0中的頁面輸出緩存

        ASP.NET 2.0中的頁面輸出緩存:靜態(tài)頁面全部內(nèi)容保存在服務(wù)器內(nèi)存中。當(dāng)再有請求時,系統(tǒng)將緩存中的相關(guān)數(shù)據(jù)直接輸出,直到緩存數(shù)據(jù)過期。這個過程中,緩存不需要再次經(jīng)過頁面處理生命周期。這樣可以縮短請求響應(yīng)時間,提高應(yīng)用程序性能。很顯然,頁面輸出緩存適用于不需要頻繁更新數(shù)據(jù),而
        推薦度:
        導(dǎo)讀ASP.NET 2.0中的頁面輸出緩存:靜態(tài)頁面全部內(nèi)容保存在服務(wù)器內(nèi)存中。當(dāng)再有請求時,系統(tǒng)將緩存中的相關(guān)數(shù)據(jù)直接輸出,直到緩存數(shù)據(jù)過期。這個過程中,緩存不需要再次經(jīng)過頁面處理生命周期。這樣可以縮短請求響應(yīng)時間,提高應(yīng)用程序性能。很顯然,頁面輸出緩存適用于不需要頻繁更新數(shù)據(jù),而

        靜態(tài)頁面全部內(nèi)容保存在服務(wù)器內(nèi)存中。當(dāng)再有請求時,系統(tǒng)將緩存中的相關(guān)數(shù)據(jù)直接輸出,直到緩存數(shù)據(jù)過期。這個過程中,緩存不需要再次經(jīng)過頁面處理生命周期。這樣可以縮短請求響應(yīng)時間,提高應(yīng)用程序性能。很顯然,頁面輸出緩存適用于不需要頻繁更新數(shù)據(jù),而占用大量時間和資源才能編譯生成的頁面。對于那些數(shù)據(jù)經(jīng)常更新的頁面,則不適用。默認(rèn)情況下,ASP.NET 2.0啟用了頁面輸出緩存功能,但并不緩存任何響應(yīng)的輸出。開發(fā)人員必須通過設(shè)置,使得某些頁面的響應(yīng)成為緩存的一部分。

           設(shè)置頁面輸出緩存可以使用以下兩種方式:一種是使用@ OutputCache指令,另一種是使用頁面輸出緩存API。@ OutputCache指令曾經(jīng)在ASP.NET 1.x中出現(xiàn)過,并在ASP.NET 2.0中得到了繼承和增強(qiáng)。頁面輸出緩存API主要是指HttpCachePolicy類。

        使用@ OutputCache指令

           使用@ OutputCache指令,能夠?qū)崿F(xiàn)對頁面輸出緩存的一般性需要。@ OutputCache指令在ASP.NET頁或者頁中包含的用戶控件的頭部聲明。這種方式非常方便,只需幾個簡單的屬性設(shè)置,就能夠?qū)崿F(xiàn)頁面的輸出緩存策略。@ OutputCache指令聲明代碼如下。


        @ OutputCache指令代碼

        <%@ OutputCache CacheProfile =" " NoStore= "True | False" Duration ="#ofseconds" Shared ="True | False" Location ="Any | Client | Downstream | Server | None | ServerandClient " SqlDependency ="database/table name pair | CommandNotification " VaryByControl ="controlname" VaryByCustom ="browser | customstring" VaryByHeader ="headers" VaryByParam ="parametername" %>

           如上所示,在@ OutputCache指令中,共包括10個屬性,它們是CacheProfile、NoStore、Duration、Shared、Location、SqlDependency、VaryByControl、VaryByCustom、VaryByHeader和VaryByParam。這些屬性將對緩存時間、緩存項(xiàng)的位置、SQL數(shù)據(jù)緩存依賴等各方面進(jìn)行設(shè)置。下面簡要介紹以上屬性的基本概念。

        CacheProfile

           用于定義與該頁關(guān)聯(lián)的緩存設(shè)置的名稱。是可選屬性,默認(rèn)值為空字符("")。需要注意的是,包含在用戶控件中的@ OutputCache指令不支持此屬性。在頁面中指定此屬性時,屬性值必須與Web.config文件<o(jì)utputCacheSettings>配置節(jié)下的outputCacheProfiles元素中的一個可用項(xiàng)的名稱匹配。如果此名稱與配置文件項(xiàng)不匹配,將引發(fā)異常。

        NoStore

           該屬性定義一個布爾值,用于決定是否阻止敏感信息的二級存儲。需要注意的是,包含在用戶控件中的@ OutputCache指令不支持此屬性。將此屬性設(shè)置為true等效于在請求期間執(zhí)行代碼“Response.Cache.SetNoStore();”。

        Duration

           用于設(shè)置頁面或者用戶控件緩存的時間。單位是秒。通過設(shè)置該屬性,能夠?yàn)閬碜詫ο蟮腍TTP響應(yīng)建立了一個過期策略,并將自動緩存頁或用戶控件輸出。需要注意的是,Duration屬性是必需的,否則將會引起分析器錯誤。

        Shared

           該屬性定義一個布爾值,用于確定用戶控件輸出是否可以由多個頁共享。默認(rèn)值為false。注意,包含在ASP.NET頁中的@ OutputCache指令不支持此屬性。

        Location

           用于指定輸出緩存項(xiàng)的位置。其屬性值是OutputCacheLocation枚舉值,它們是Any、Client、Downstream、None、Server和ServerAndClient。默認(rèn)值是Any,表示輸出緩存可用于所有請求,包括客戶端瀏覽器、代理服務(wù)器或處理請求的服務(wù)器上。需要注意的是,包含在用戶控件中的@ OutputCache指令不支持此屬性。 

        SqlDependency

           該屬性標(biāo)識一組數(shù)據(jù)庫/表名稱對的字符串值,頁或控件的輸出緩存依賴于這些名稱對。需要注意:SqlCacheDependency類監(jiān)視輸出緩存所依賴的數(shù)據(jù)庫中的表,因此,當(dāng)更新表中的項(xiàng)時,使用基于表的輪詢將從緩存中移除這些項(xiàng)。當(dāng)通知(在SQL Server 2005中)與CommandNotification值一起使用時,最終將使用SqlDependency類向SQL Server 2005服務(wù)器注冊查詢通知。另外,SqlDependency屬性的CommandNotification值僅在ASP.NET頁中有效。控件只能將基于表的輪詢用于@ OutputCache指令。

        VaryByControl

           該屬性使用一個分號分隔的字符串列表來更改用戶控件的輸出緩存。這些字符串代表在用戶控件中聲明的ASP.NET服務(wù)器控件的ID屬性值。除非已經(jīng)包含了VaryByParam屬性,否則在@ OutputCache指令中,該屬性是必需的。

        VaryByCustom

           用于自定義輸出緩存要求的任意文本。如果賦予該屬性值是browser,緩存將隨瀏覽器名稱和主要版本信息的不同而異。如果輸入了自定義字符串,則必須在應(yīng)用程序的Global.asax文件中重寫HttpApplication.GetVaryByCustomString方法。

        VaryByHeader

           該屬性中包含由分號分隔的HTTP標(biāo)頭列表,用于使輸出緩存發(fā)生變化。當(dāng)將該屬性設(shè)為多標(biāo)頭時,對于每個指定的標(biāo)頭,輸出緩存都包含一個請求文檔的不同版本。VaryByHeader屬性在所有HTTP 1.1緩存中啟用緩存項(xiàng),而不僅限于ASP.NET緩存。用戶控件中的@ OutputCache指令不支持此屬性。

        VaryByParam

           該屬性定義了一個分號分隔的字符串列表,用于使輸出緩存發(fā)生變化。默認(rèn)情況下,這些字符串與用GET方法屬性發(fā)送的查詢字符串值對應(yīng),或與用POST方法發(fā)送的參數(shù)對應(yīng)。當(dāng)將該屬性設(shè)置為多參數(shù)時,對于每個指定的參數(shù),輸出緩存都包含一個請求文檔的不同版本。可能的值包括“none”、“*”和任何有效的查詢字符串或POST參數(shù)名稱。值得注意的是,在輸出緩存ASP.NET頁時,該屬性是必需的。它對于用戶控件也是必需的,除非已經(jīng)在用戶控件的@ OutputCache指令中包含了VaryByControl屬性。如果沒有包含,則會發(fā)生分析器錯誤。如果不需要使緩存內(nèi)容隨任何指定參數(shù)發(fā)生變化,則可將該值設(shè)為“none”。如果要使輸出緩存根據(jù)所有參數(shù)值發(fā)生變化,則將屬性設(shè)置為“*”。

           下面列舉了兩個使用@OutputCache指令的示例代碼。


        使用@ OutputCache的示例代碼1

        <%@ OutputCache Duration="100" VaryByParam="none"%>

           以上示例是@ OutputCache指令的基本應(yīng)用,其指示頁面輸出緩存的有效期是100秒,并且頁面不隨任何GET或POST參數(shù)改變。在該頁仍被緩存時接收到的請求由緩存數(shù)據(jù)提供服務(wù)。經(jīng)過100秒后,將從緩存中移除該頁數(shù)據(jù),并隨后顯式處理下一個請求并再次緩存頁。

        使用@ OutputCache的示例代碼2


        <%@ OutputCache Duration="100" VaryByParam="location;firstname" %>


           以上@ OutputCache指令設(shè)置頁面輸出緩存的有效期是100秒,并且根據(jù)查詢字符串參數(shù)location或者firstname來設(shè)置輸出緩存。例如,假設(shè)客戶端請求是“http://localhost/default.aspx?location=beijing”,那么該頁面將被作為緩存處理。

        靜態(tài)頁面全部內(nèi)容保存在服務(wù)器內(nèi)存中。當(dāng)再有請求時,系統(tǒng)將緩存中的相關(guān)數(shù)據(jù)直接輸出,直到緩存數(shù)據(jù)過期。這個過程中,緩存不需要再次經(jīng)過頁面處理生命周期。這樣可以縮短請求響應(yīng)時間,提高應(yīng)用程序性能。很顯然,頁面輸出緩存適用于不需要頻繁更新數(shù)據(jù),而占用大量時間和資源才能編譯生成的頁面。對于那些數(shù)據(jù)經(jīng)常更新的頁面,則不適用。默認(rèn)情況下,ASP.NET 2.0啟用了頁面輸出緩存功能,但并不緩存任何響應(yīng)的輸出。開發(fā)人員必須通過設(shè)置,使得某些頁面的響應(yīng)成為緩存的一部分。

           設(shè)置頁面輸出緩存可以使用以下兩種方式:一種是使用@ OutputCache指令,另一種是使用頁面輸出緩存API。@ OutputCache指令曾經(jīng)在ASP.NET 1.x中出現(xiàn)過,并在ASP.NET 2.0中得到了繼承和增強(qiáng)。頁面輸出緩存API主要是指HttpCachePolicy類。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識,若有侵權(quán)等問題請及時與本網(wǎng)聯(lián)系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        ASP.NET 2.0中的頁面輸出緩存

        ASP.NET 2.0中的頁面輸出緩存:靜態(tài)頁面全部內(nèi)容保存在服務(wù)器內(nèi)存中。當(dāng)再有請求時,系統(tǒng)將緩存中的相關(guān)數(shù)據(jù)直接輸出,直到緩存數(shù)據(jù)過期。這個過程中,緩存不需要再次經(jīng)過頁面處理生命周期。這樣可以縮短請求響應(yīng)時間,提高應(yīng)用程序性能。很顯然,頁面輸出緩存適用于不需要頻繁更新數(shù)據(jù),而
        推薦度:
        標(biāo)簽: 緩存 輸出 2.0
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 国产精品亚洲а∨天堂2021 | 精品亚洲一区二区| 亚洲精品无码av片| 国产免费毛不卡片| 亚洲国产中文在线视频| 久久免费精品视频| 久久国产亚洲精品麻豆| 久久一区二区三区免费| 久久久无码精品亚洲日韩软件| 久久精品国产亚洲AV| 免费黄网在线观看| 综合偷自拍亚洲乱中文字幕| 国产亚洲精品免费| 无套内射无矿码免费看黄| 亚洲&#228;v永久无码精品天堂久久 | 久久大香伊焦在人线免费| 亚洲成AV人片在线观看| 国产啪精品视频网站免费尤物| 亚洲免费人成在线视频观看| 91精品全国免费观看青青| 亚洲狠狠婷婷综合久久久久| 中文字幕无码一区二区免费| 久久精品亚洲综合专区| 99视频在线免费看| 亚洲一区二区久久| 免费看片免费播放| 美女尿口扒开图片免费| 狠狠亚洲婷婷综合色香五月排名| 在线观看免费视频网站色| 亚洲国产人成在线观看69网站 | 美女羞羞免费视频网站| 国产成人亚洲综合无码| 男的把j放进女人下面视频免费| 亚洲va久久久噜噜噜久久 | 国产精品亚洲精品日韩动图| 免费看国产精品麻豆| 拍拍拍无挡免费视频网站| 亚洲黄色在线网站| 日本一线a视频免费观看| 国产男女爽爽爽免费视频| 亚洲精品一区二区三区四区乱码|