打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本...
userphoto

2009.06.03

关注

如何使用 @ OutputCache 指令的 VaryByCustom 属性来缓存不同版本的页面

为每个session页配制缓存是通过 @ OutputCache 指令的属性 VaryByCustom 来实现的。按照下面的脚本(包含到一个.aspx文件中),花上10秒钟就可以为各个session ID用户配制独立的页面版本。

<%@ OutputCache Duration="10" VaryByParam="None" VaryByCustom="SessionID" %>

要用到 VaryByCustom="SessionID" ,就要在在服务器的根目录下有Global.asax文件,在文件中声明以下用法:

<script language="C#" runat="server">
  public override string GetVaryByCustomString(HttpContext context, string arg)
  {
      if (arg.ToLower () == "sessionid") {
          HttpCookie cookie =
           context.Request.Cookies["ASP.NET_SessionId"];
           if (cookie != null)
              return cookie.Value;
      }
      return base.GetVaryByCustomString (context, arg);
  }
</script>

GetVaryByCustomString 是ASP.NET页面输出缓存的基础。它继承于HttpApplication,返回从session cookie得到的session ID。用户在调用GetVaryByCustomString时会被关联到一个session。

这个技术的缺点是不能用于不支持cookie的用户。另外,用户只有在第二次发出申请时才能获得缓存,因为第一次请求没有合法的session cookie。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
网络请求中的cookie与set
nodejs express 使用 redis 存储 session 或 Session存放到MongoDB
使用会话状态(一) - .Net 我来啦 - 博客园
关于大型网站技术演进的思考(一):存储的瓶颈(1)
MemcachedProviders之SesstionStateProvider
Java面试通关宝典(一)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服