ASP 清除缓存 为啥要设置Response.Buffer = True

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP 清除缓存 为啥要设置Response.Buffer = True相关的知识,希望对你有一定的参考价值。

清除缓存 关闭页面缓存不就行了么?Response.Buffer = false
为什么反而要要Response.Buffer = True 来打开缓存呢?
Response.ExpiresAbsolute = Now() - 1
Response.Expires = 0
Response.CacheControl = "no-cache"
Response.AddHeader "Pragma", "No-Cache"

首先你要搞清楚,所谓的缓存究竟是指服务器的缓存还是客户端(也就是浏览器)的缓存。Response.Buffer指的是服务器的缓存,要清除缓存,必须在缓存打开的情况下才能执行的,如果服务器没有启用缓存处理(即Response.Buffer=False),则所有输出动作都是直接发送给客户端的,就不存在清除问题了。而你题目中的最后四行代码则是关于浏览器缓存的,即不把页面保存到浏览器的缓存文件夹中。

我估计你是把服务器的缓存与浏览器的缓存想成同一个东西了。
参考技术A Response.Buffer = True
是说服务端缓存要输出的网页,等完毕后再一起发送。
这样,你就可以根据需要,中途response.clear把之前的内容清掉

Response.Buffer = false
则网页直接发送给了浏览器,没有机会撤销

这个与是否允许浏览器cache网页是两码事~~

以上是关于ASP 清除缓存 为啥要设置Response.Buffer = True的主要内容,如果未能解决你的问题,请参考以下文章

如何清除缓存,以及为啥要清理缓存?

如何清除文本框的缓存?? asp.net

在ASP中如何在用户关闭页面后自动清除SESSION?

ASP.NET 应用程序转到 500.21 ...直到 IIS 重置 + 清除临时 ASP.NET 缓存

利用asp语言和iis自建的网站,现在是localhost运行的。localhost缓存怎么清除?

如何清除asp.net中的服务器缓存?