ASP如何清除页面缓存。Cookies 集合,Buffer,Expires,ExpiresAbsolute,CacheControl

ASP如何清除页面缓存

如何清除页面缓存,禁止页面缓存,如何禁止禁止页面缓存

当使用ASP进行Web编程时,你发现确实修改了程序代码,确认没有改错,却发现输出的Webyemi8an没有变化,这就是服务端将此ASP文件加入了页面缓存。

     清楚页面缓存有一下几种方法;

     1.在ASP页面首部加入一下代码:

       Response.Buffer=True

       Response.ExpiresAbsolute=Now()-1

       Response.Expires=0

       Response.CacheControl=“no-cache”

       Response.AddHeader “Pragma”,“no-Cache”

     2.在HTML代码中加入下面的代码,不过这些代码似乎不能解决刷新无效的问题,因为这些代码只是针对客户端的页面缓存而已,只具有清楚客户端的页面缓存的功能。

       <HEAD>

        <META HTTP-EQUIV="Pragma" CONTENT="no-cache">

        <META HTTP-EQUIV="Cache-Control" CONTENT="no-cache">

        <META HTTP-EQUIV="Expires" CONTENT="no-cache">

       </HEAD>

     3.如果一个ASP文件是url.asp,那么在访问的时候,脚本链接应该为:

       <input type="button" οnclick="window.location.href='url.asp?'+Math.random()" value="提交"/>

========================================================================================

Cookies 集合,Buffer,Expires,ExpiresAbsolute,CacheControl  

实例

"Response.Cookies" 命令用于创建 cookie 或者设置 cookie 的值:

<%
Response.Cookies("firstname")="Alex"
%>在上面的代码中,我们创建了一个名为 "firstname" 的 cookie,并为它赋值 alex 。

也可以为 cookie 设置属性,比如设置 cookie 的失效时间:

<%
Response.Cookies("firstname")="Alex" 
Response.Cookies("firstname").Expires=#May 10,2002#
%>现在,名为 "firstname" 的 cookie 的值是 "Alex",同时它在用户电脑中的失效日期是 2002 年 5 月 10 日。

"Request.Cookies" 命令用于取回 cookie 的值。

在下面的例子中,我们取回了 cookie "firstname" 的值,并把它显示到页面上:

<%
fname=Request.Cookies("firstname")
response.write("Firstname=" & fname)
%>输出:

Firstname=Alex

一个 cookie 可以包含一个多值的集合。我们称之为 cookie 拥有 key 。

在下面的例子中,我们要创建一个名为 "user" 的 cookie 集合。"user" cookie 拥有包含有关用户信息的 key 。

<%
Response.Cookies("user")("firstname")="John"
Response.Cookies("user")("lastname")="Adams"
Response.Cookies("user")("country")="UK"
Response.Cookies("user")("age")="25"
%>下面的代码可读出所有服务器已向用户发送的 cookie 。请注意,我们使用了 HasKeys 属性来判断 cookie 是否拥有 key :

<html>
<body>

<%
dim x,y

for each x in Request.Cookies
  response.write("<p>")
  if Request.Cookies(x).HasKeys then
    for each y in Request.Cookies(x)
      response.write(x & ":" & y & "=" & Request.Cookies(x)(y))
      response.write("<br /")
    next
  else
    Response.Write(x & "=" & Request.Cookies(x) & "<br />")
  end if
  response.write "</p>"
next
%>

</body>
</html>
%>输出:

firstname=Alex
user:firstname=John
user:lastname=Adams
user:
country=UK
user:
age=25


=============================================================================

不知道大家对Buffer了解多少,很多人对这个概念都比较模糊,尤其是在asp中。很多初学者在编写asp程序时很少用到这条语句,下面我就来说说Buffer的用途以及它在asp程序中的作用。 
一、Buffer 
Buffer从英文直译过来的意思是“缓冲区”,这里我们将它称为缓冲,因为它不仅是个名词,还是个动词。 
缓冲区是存储一系列的数据的地方,客户端所获得的数据可以从程序的执行结果直接输出,也可以从缓冲区输出。但是这两种方式在速度上是有差异的:在web中,当一个asp程序被请求的次数不多时,二者基本上没有什么差异,至少我们感觉不出来。但是当有很多人请求一个asp程序时,速度可就不一样了。假如没有缓冲区,那么每个请求asp程序的人的客户端所得到的结果都是asp程序执行一次所得到的结果,而假如预先将asp程序缓冲,那么每个客户端所得到的结果就是缓冲区的结果,不是执行一次程序的结果。比如有1000个用户同时访问一个asp页面,假如这个asp程序没有缓冲,那么程序将被执行一千次,这样服务器的负荷就回加大,从而导致客户端打开页面速度变慢;假如这个asp程序被缓冲了,那么结果就不一样了,每个客户端直接从缓冲区获得数据,服务器将不会因为访问增加而增加程序执行次数,因此客户端打开页面的速度也就比上一种情况要快。这就是Buffer的好处。 
二、如何将asp程序缓冲 
这个问题其实很简单,只要在asp程序的第一行加上: 
<% Response.Buffer = True %> 
就可以了。 
这句话的意思就是指明输出页面是否被缓冲,当属性值为True时,服务器将不会向客户端发送任何信息,直到所有程序执行完或者碰到 
<% Response.Flush %>或<% Response.End %> 
语句,才会释放缓冲区的信息。 
三、总结 
Response的Buffer属性虽然能够提高页面显示速度,但是也要分什么情况。假如你正在制作一个普通的个人主页,访问量不是很高,并且没有什么复杂的执行程序,那么用不用这个属性就不是很重要,因为将数据缓冲也需要一段时间,只不过我们感觉不到罢了;但是假如你正在制作一个大型论坛或者一个产品展示或其他的商务站点,并且访问量很高,那么我建议在程序的第一行加入 
<% Response.Buffer = True %> 
这句话,因为这样能够让客户在有效的时间内获得更多的数据。 
=============================================================================

Response.Expires

一般情况下,当用户请求WEB服务器时,服务器把请求回复给客户端。在客户端,浏览器把缓存作为一种加快速度的策略,就是当请求时先检查缓存的情况,如果有就直接调缓存了,而不请求服务器了。 在WEB程序设计中,有时为了防止重复的提交或者严格的次序等,必须让用户的数据立即在使用后就过期,当用户后退时就显示过期而不能继续使用。也算是为安全考虑的吧。 一般,response.expires写在页面的最上端,后面跟的是一个时间,就是过期的时间,0表示立即过期。 -1也是一样的道理,即是-9999也是一样的。

如:登陆验证码,使用Response.Expires = -1可以在登陆失败时点后退按钮后让验证码换一个,而不是原先的那一个。

Response.CacheControl = "no-cache"

设置不缓存在临时文件中,本句是指,上网时看到的图片通常在internet的临时文件都能够找到对应的文件,如果加上这一句就找不到了。

Response.expires=0也表示立即过期,但如果client和server不在一个时区或者client的时间早于server上的时间,则不能立即过期。所以用负数或者用Response.ExpiresAbsolute=now()-1来表示立即过期,response.expires=1表示在1分钟后过期。

 

asp中Response.ExpiresAbsolute=now()-1

 

在asp页面中,通常会有这样的设置。

 

Response.ExpiresAbsolute=now()-1‘设置过期时间的绝对值为当前时间-1,即出来后就过期了

 

这是因为默认情况下,浏览器将页面先载入缓存,然后才显示出来.通过上述设置,使浏览器对页面不进行缓存,所以当用户点"后退"后,由于页面没有缓存,所以浏览器只能再次通过向服务器发出HTTP请求来得到页面,这样就实现了限制了用户对同一网页进行多次操作。

 

asp中Response.Expires = -1

 

一般情况下,当用户请求WEB服务器时,服务器把请求回复给客户端。在客户端,浏览器把缓存作为一种加快速度的策略,就是当请求时先检查缓存的情况,如果有就直接调缓存了,而不请求服务器了。 

在WEB程序设计中,有时为了防止重复的提交或者严格的次序等,必须让用户的数据立即在使用后就过期,当用户后退时就显示过期而不能继续使用。也算是为安全考虑的吧。 

一般,response.expires写在页面的最上端,后面跟的是一个时间,就是过期的时间,0表示立即过期。

 

<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<% 
Response.ExpiresAbsolute=#2010-8-5 14:09:30#   
if now>Response.ExpiresAbsolute then    
response.Write("该页面已过期")     
else
response.Write("欢迎光临!!")     
end if
%>
<html>
<head>

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值