ASP.NET 4.0中的不同服务器和客户端缓存策略
发布时间:2020-12-16 07:39:24 所属栏目:asp.Net 来源:网络整理
导读:我对ASP.NET输出缓存缺乏一点基本的了解. 在我的情况下,我的资源与我的VaryByCustom密钥紧密相关.在服务器端,我喜欢这些密钥无限期地缓存,直到密钥发生变化.这些缓存条目没有理由在计时器上清除. 但是,客户应该每小时检查一次,以获得服务器认为最新鲜的内容.
我对ASP.NET输出缓存缺乏一点基本的了解.
在我的情况下,我的资源与我的VaryByCustom密钥紧密相关.在服务器端,我喜欢这些密钥无限期地缓存,直到密钥发生变化.这些缓存条目没有理由在计时器上清除. 但是,客户应该每小时检查一次,以获得服务器认为最新鲜的内容. 如果我将持续时间设置为1小时,我知道在客户端上正确设置了过期标头.但它是否也驱逐了服务器端缓存?有没有办法确保响应保持缓存在服务器上,直到我的VaryByCustom更改,但仍然允许更频繁的客户端到期? 解决方法
这里需要注意的重要一点是,如果你的VaryByCustom发生了变化,asp.net会存储一个单独的缓存版本的页面.
因此,假设你的VaryByCustom-“custom1”持续时间=“60”,那么这将被缓存60秒. 如果您的VaryByCustom更改为“custom2”且持续时间=“60”,asp.net将在缓存中存储一??个单独的副本,这与“custom1”的缓存不同,此单独版本将缓存60秒. 测试这个的简单方法是通过基于浏览器更改VaryByCustom. 在Global.asax中 public override string GetVaryByCustomString(HttpContext context,string custom) { if (custom == "browser") { string browserName; browserName = Context.Request.Browser.Browser; browserName += Context.Request.Browser.MajorVersion.ToString(); return browserName; } else { return base.GetVaryByCustomString(context,custom); } } ASPX <%@ Page Title="Home Page" Language="C#" MasterPageFile="~/Site.master" AutoEventWireup="true" CodeBehind="Default.aspx.cs" Inherits="WebFormsPlayGround._Default" %> <%@ OutputCache Duration="40" VaryByParam="None" VaryByCustom="browser" %> 页面加载 protected void Page_Load(object sender,EventArgs e) { lblTime.Text = "The time now is: <br/>"; lblTime.Text += DateTime.Now.ToString(); } 我没有在aspx中包含asp:Label的标记,但我希望你能得到一般的想法. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc-2 – 什么是MapRoute名称空间参数?
- asp.net-web-api – 如何在Azure Service Fabric中的自托管
- asp.net mvc 3 c#post变量数组
- asp.net-mvc-2 – 如何在自定义验证属性中为不同的方案设置
- ASP.NET 4.5 C#Forms拒绝登录页面的身份验证访问
- asp.net应用程序中的内存泄漏 – W3WP和第2代堆继续增长,直
- asp.net-mvc – SignalR – 使用Windows和匿名身份验证时,连
- asp.net – 使用appcmd添加新网站而不提供网站ID?
- asp.net-mvc-3 – 将我的MVC 3应用程序迁移到MVC 4
- asp.net – 使用数据库或MSMQ进行排队?
推荐文章
站长推荐
- asp.net – 如果内容是静态的,那么对于带有“If-
- asp.net – 限制可以输入’textarea’的文本数量
- asp.net-mvc – 从ASP.NET MVC操作返回什么来允许
- asp.net – applicationSettings和Web.config
- asp.net-mvc-3 – .NET MVC 3自定义控制器属性
- 如何在Asp.Net页面中包含Javascript文件
- asp.net-mvc – Owin如何在Application_EndReque
- asp.net – 如何获取控制器和操作名称在OnAction
- asp.net – 通过链接按钮单击从一个用户控件到另
- asp.net – 如何使用数据库实现同步Memcached
热点阅读