网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > ASP.NET技巧
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.通过系统配置来提高ASP.NET应用程.
.asp.net利用RAR实现文件压缩解压.
.用完HttpWebResponse时别忘了调用.
.asp.net报表解决方法.
.实现FCKeditor 多用户分文件夹上.
.关于2.0 中的用户控件编程使用.
.发布网站的时候,遇到 未能加载文.
.解决网址参数获取乱码问题.
..Net中如何操作IIS(原理篇).
.关于ASP.NET2.0编写扩展存储过程.
.Windows 2003 Server 中DOTNET程.
..NET 应用程序的性能提升应用技巧.
.ASP.Net生成后台脚本的问题的解决.
.把.NET程序部署到没有安装.NET F.
.ASP.NET 2.0发送电子邮件中存在的.
.通过ASP.net程序创建域帐户故障.
.使用.NET自带的功能制作简单的注.
.asp.net技术的学习顺序问题.
.数据库连接字在Web.config里的用.
.ASP.NET2.0实现无刷新客户端回调.

根据自定义字符串来缓存(部分)页面

发表日期:2006-3-27


比如说网站有一个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以及是否登陆来缓存不同的版本,不过,这个缓存好像默认没有开启。


       
出处:卡卡.net

上一篇:利用WebClient获取远程数据(仅做备份) 人气:5652
下一篇:通过代码给IIS增加主机头 人气:5112
浏览全部asp.net的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐