當(dāng)用戶訪問(wèn)頁(yè)面時(shí),整個(gè)頁(yè)面將會(huì)被服務(wù)器保存在內(nèi)存中,這樣就對(duì)頁(yè)面進(jìn)行了緩存。當(dāng)用戶再次訪問(wèn)該頁(yè),頁(yè)面不會(huì)再次執(zhí)行數(shù)據(jù)操作,頁(yè)面首先會(huì)檢查服務(wù)器中是否存在緩存,如果緩存存在,則直接從緩存中獲取頁(yè)面信息,如果頁(yè)面不存在,則創(chuàng)建緩存。
頁(yè)面輸出緩存適用于那些數(shù)據(jù)量較多,而不會(huì)進(jìn)行過(guò)多的事件操作的頁(yè)面,如果一個(gè)頁(yè)面需要執(zhí)行大量的事件更新,以及數(shù)據(jù)更新,則并不能使用頁(yè)面輸出緩存。使用@OutputCatch指令能夠聲明頁(yè)面輸出緩存,示例代碼如下所示。
CacheProfile:獲取或設(shè)置OutputCacheProfile名稱。
Duration:獲取或設(shè)置緩存項(xiàng)需要保留在緩存中的時(shí)間。
VaryByHeader:獲取或設(shè)置用于改變緩存項(xiàng)的一組都好分隔的HTTP標(biāo)頭名稱。
Location:獲取或設(shè)置一個(gè)值,該值確定緩存項(xiàng)的位置,包括Any、Clint、Downstream、None、Server和ServerAndClient。默認(rèn)值為Any。
VaryByControl:獲取或設(shè)置一簇分好分隔的控件標(biāo)識(shí)符,這些標(biāo)識(shí)符包含在當(dāng)前頁(yè)或用戶控件內(nèi),用于改變當(dāng)前的緩存項(xiàng)。
NoStore:獲取或設(shè)置一個(gè)值,該值確定是否設(shè)置了“Http Cache-Control:no-store”指令。
VaryByCustom:獲取輸出緩存用來(lái)改變緩存項(xiàng)的自定義字符串列表。
Enabled:獲取或設(shè)置一個(gè)值,該值指示是否對(duì)當(dāng)前內(nèi)容啟用了輸出緩存。
VaryByParam:獲取查詢字符串或窗體POST參數(shù)的列表。
通過(guò)設(shè)置相應(yīng)的屬性,可以為頁(yè)面設(shè)置相應(yīng)的緩存,當(dāng)需要為Default.aspx設(shè)置緩存項(xiàng)時(shí),可以使用VaryByParam屬性進(jìn)行設(shè)置,示例代碼如下所示。
標(biāo)簽:廣元 咸寧 賀州 固原 吉林 池州 淮北 樂(lè)山
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《ASP.NET OutputCache詳解》,本文關(guān)鍵詞 ASP.NET,OutputCache,詳解,ASP.NET,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。