自定義緩存(Custom Caching)
你也可以創(chuàng)建自定義的程序來緩存頁面。ASP.NET提供了一種很便捷的方式來創(chuàng)建自定義緩存,使用VarByCustom屬性指定自定義緩存類型的名字。
你還要?jiǎng)?chuàng)建為緩存生成自定義字符串的方法,如下:
public override stringGetVaryByCustomString(HttpContext context, stringcustom) { if(custom == "browser") { returncontext.Request.Browser.Browser + context.Request.Browser.MajorVersion; } else { return base.GetVaryByCustomString(context, custom); } }
這個(gè)方法必須寫在global.asax文件中。ASP.NET使用該方法返回的字符串來實(shí)現(xiàn)緩存,如果這個(gè)方法在不同的請(qǐng)求中返回相同的字符串,ASP.NET就會(huì)使用緩存的頁面,否則就會(huì)生成新的緩存版本。
上面的例子中GetVaryByCustomString()方法根據(jù)瀏覽器的名字創(chuàng)建緩存字符串,ASP.NET會(huì)根據(jù)不同的瀏覽器請(qǐng)求創(chuàng)建不同版本的緩存。
控件緩存(Control Cache )
上面的緩存技術(shù)可以讓你很容易的緩存整個(gè)頁面,如果要緩存指定控件的內(nèi)容,可以通過指定VaryByControl 屬性來完成。
<%@OutputCacheDuration="20"VaryByControl="MyControl_1"%>
上面代碼ASP.NET將會(huì)緩存MyControl_1控件20分鐘。如果要根據(jù)一些屬性值來緩存控件只需要將OutPutCache指令加入*.ascx頁面。
<%@Control Language="C#"AutoEventWireup="true"CodeFile="MyControl.ascx.cs" Inherits="Controls_MyControl"%> <%@OutputCacheDuration="20"VaryByControl="EmployeeID"%>
VaryByControl=”EmployeeID”告訴ASP.NET根據(jù)控件中聲明的EmployeeID屬性來創(chuàng)建不同版本的緩存。
在 .ascx.cs 文件加入EmplyeeID屬性為ASP.NET 緩存使用。
在頁面中增加控件并且設(shè)置 EmployeeID.
private int_employeeID;
public intEmployeeID { get{ return_employeeID; } set{ _employeeID = value; } }
protected voidPage_Load(objectsender, EventArgs e) { lblDate.Text = DateTime.Now.ToShortDateString(); lblTime.Text = DateTime.Now.ToLongTimeString(); lblEmployeeID.Text = EmployeeID.ToString(); }
出處:博客園
責(zé)任編輯:bluehearts
上一頁 ASP.NET緩存 [1] 下一頁 ASP.NET緩存 [3]
◎進(jìn)入論壇網(wǎng)絡(luò)編程版塊參加討論
|