你的位置:首页 > 软件开发 > ASP.net > ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

发布时间:2016-07-05 18:00:21
本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度。一、简单一行指令即可实现<%@ OutputCache VaryByParam="none" Duration="300" %>这样整个页面就被缓存了,由于 ...

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

本文主要介绍Web窗体页面中的使用方法,MVC中使用方法,大家自行百度一、简单一行指令即可实现

<%@ OutputCache VaryByParam="none" Duration="300" %>
二、缓存前后性能对比使用ab模拟100个用户1000次并发,前后结果如下:这个bug伴随.NET1.0到4.0,就是OutputCache会忽略浏览器的缓存,本人用的是.NET 4.0,微软官方说已经完美解决,但是实测bug依然存在,具体表现是:1.VaryByParam设置为none时,没有bug,F5刷新状态码每次都是304

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

3.解决方法就是在Page_Load中加如下代码

Response.Cache.SetOmitVaryStar(true);
四、局部缓存数据,使部分数据不被缓存这个就太常见了,我们总不希望登录状态也被缓存吧,假设页面没做任何改进,你登录之前是【登录】【注册】这种按钮,当你登录后依然显示【登录】【注册】这肯定是不妥的,那么我们希望这部分内容不被缓存,那我们就要用到Substitution控件。在页面中放置Substitution控件

<asp:Substitution ID="subLoginStatus" runat="server" MethodName="GetLoginStatus"/>
注:由于页面中有一部分是动态的,所以每次请求的状态码都是200。五、OutputCache失效的问题网上有说Cookie和Cache冲突,大家自行检查,我在做的时候也确实遇到了OutputCache失效的问题,排查代码发现,包含如下代码

<script language="C#" runat="server">  get='_blank'>string siteId = "ab71a8cfda50fbfeb2d3f6ee182af524";</script><!-- #include file="hm.aspx" --><% string ret = TrackPageView(); %><div style="display:none;"><img src='/images/loading.gif' data-original="<%= ret %>" width="0" height="0"/></div>

原标题:ASP.NET 页面缓存OutputCache用法实例(附ab压力测试对比图)

关键词:ASP.NET

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。