页面不能及时刷新,问题出在outputcache上

这段时间在做一个项目时,遇到一个困扰我和同事好久的问题:在VB.NET下实现编写一个左边导航条控件,用来根据不同的用户登录信息显示不同的内容。可是遇到一个问题一开始怎么也没办法解决,就是每当切换用户的时候导航条内容不跟着变化,仔细测试了一下发现表面现象如下:

1、每次切换用户,按道理根据用户信息的不同,控件中显示的内容应该是不一样,可是居然没有变化,怎么刷新页面都没变化  
2、点其他之前未查看过的页面,导航控件变化了,然后再回到换用户前访问过的页面,导航控件又是上一个用户使用的内容,刷新,再刷新,还是没变化  
3、页面不动,过了一阵子再去刷新,咦!现在才发生变化  

  真是郁闷!!!

    根据这些情况,我琢模可能是缓存的问题,可是这个这个“缓存”到底设置在什么地方了呢?结果经过仔细的查找,最终发现原来是在该控件的html代码顶部里有这么一句话在作怪:

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

    于是试着去掉,果然问题马上得到了解决,到网上搜了一下,这句话的意思是:用来启动OutputCache

    所谓output cache,是在执行MSIL之后,先将结果写入output cache,然后再将output cache下传到浏览器,而将来如果浏览同一网页,ASP+会先判断该网页是否有output cache存在,如果有,则直接将output cache下传浏览器,不会经过编译.aspx及执行MSIL的过程,故能提升执行效能。

    启动outputcache的方法十分简单,只要在.ASPX网页的最前面加上以下标记:
<%@output cache duration="秒数"%>
其中durtion表示output cache保留在系统中的秒数,例如:
<%@output cache duration="10"%>
结果网页的output cache将会保留系统中10秒钟,而凡是在这10秒钟内浏览此一网页,ASP+就会直接将output cache下传给浏览器,省略了编译的过程!

    原来如此!!!哈哈,又学到了新东西,以后不会再范这个错误咯,高兴 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值