成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

根據自定義字符串來緩存(部分)頁面

2010-08-28 10:50:35來源:西部e網作者:

比如說網站有一個Header.ascx用戶控件,每個頁面都調用此控件作為"頁面頭部",直接可以緩存此用戶控件就可以提交性能,不過,現在此Header.ascx用戶控件要顯示登陸用戶的登陸名,所以,就不能直接用下面這種緩存方式:

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

這個時候就可以利用"根據自定義字符串來緩存頁"這種方法了,具體如下:

<%@ OutputCache Duration="86400" VaryByParam="None" VaryByCustom="HeaderPageKey" %>

然后在Global類里面重寫方法 GetVaryByCustomString

        public override string GetVaryByCustomString(HttpContext context, string custom)
        {
            
if(custom=="HeaderPageKey")
            {
                
//緩存 Header.ascx 控件
                if(context.Request.IsAuthenticated)
                {
                    
return context.User.Identity.Name;
                }
                
else
                {
                    
return "NoAuthenticated_User";
                }
            }
            
return base.GetVaryByCustomString (context, custom);
        }

用戶如果沒有登陸,那么緩存一個版本,如果已經登陸,那么根據登陸名的不同緩存另外一個版本,哈哈,為每個用戶都緩存了一個版本,這樣做,應該說不是很好的解決方法。

上述緩存技術可以參考 http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpguide/html/cpconcachingversionsofpagebasedonparameters.asp

另外,MSPetShop3.0里面也用到了這樣的緩存方法,根據Request.Querystring以及是否登陸來緩存不同的版本,不過,這個緩存好像默認沒有開啟。
關鍵詞:ASP.NET
主站蜘蛛池模板: 江陵县| 赣州市| 奇台县| 衡东县| 开原市| 子长县| 改则县| 交口县| 津南区| 濮阳市| 梁平县| 洛扎县| 陵川县| 青冈县| 禄劝| 定陶县| 安新县| 新闻| 菏泽市| 资兴市| 文昌市| 通化县| 宁德市| 梅州市| 繁峙县| 怀柔区| 辉县市| 宜丰县| 安化县| 本溪市| 阿鲁科尔沁旗| 昭平县| 平原县| 盐城市| 葵青区| 建阳市| 得荣县| 和平区| 东城区| 洮南市| 大洼县|