您现在的位置:计算机技术学习网 > 技术中心 > WEB编程 > ASP >

ASP网页缓存和

来源:网络整理 责任编辑:栏目编辑 发表时间:2013-07-01 09:08 点击:
用户的浏览器以及他们和服务器这间的任一代理服务器,都可以缓存HTML和用ASP创建的网页。当用户随后请求页面时,浏览器就发送一个“最新修改”的请求到服务器(使用一个包含缓存版本的日期的HTTP_IF_MODIFIED_SINCE报头),询问网页是否已被修改。
若没有被修改,服务器应用状态码和消息“304 Not Modified”来响应,浏览器将使用缓存的内容而不会通过网络下载一个副本。若已经存在已修改的版本,它就会与“200 OK”状态码和消息一道被发送出去。
1)     Response.CacheContol属性
其他的一些因素也会影响这一处理过程。然而,任一被网页使用的网络路由内的代理服务器(一般位于客户机端),能被通过设置 Response.CacheControl属性为Private来放弃缓存网页。在ASP 3.0中对ASP网页这是缺省的,不用设置。但在网页为个别访问者特别定制时尤其有用。这可以阻止别的在同一网络上的用户进入同一网页。当 CacheControl的属性值被设定为Public时,允许服务器缓存网页。注意,一些代理服务器可能表现得不尽相同,或忽视或越过这个报头。

<%
If Request.Form(“public”) = ''''''''on" Then  ''''''''Cache-Control check box was ticked
       Response.CacheControl = "Public"
   Else
       Response.CacheControl = "Private"
   End If
%>
   <HTML>
   ...
   Cache-Control is: <B><% = Response.CacheControl %></B><P>
   value in text box is: <B><% Response.Write Request.Form(“textbox”) %>
   <%
   Response.Write Right(“0” & Hour(Now),2) & “:” & Right(“0” & Minute(Now),_
           & 2) & “:” & Right(“0” & Second(Now),2)
   %></B>
通过单击浏览器上的“Back”和“Forward”,能看到代码是自动执行还是使用缓存的副本,结果随浏览器的不同而变.

2)     Response.Expires和Response.ExpiresAbsolute属性
控制缓存的网页存放时间的两个属性为Response对象的Expires和ExpriesAbsolute属性。Response.Expires定义了风页在从缓存区被丢弃前应保持有效的时间长度,以创建以来的分钟数形式表示。ExpiresAbsolute属性为到期时间设置了一个绝对的日期和时间。

<%
‘Write HTTP headers before any other output
If Request.Form(“expires”) = “on” Then _
    Response.Expires = Request.Form(“expires_value”)
If Request.Form(“expiresabs”) = “on” Then _
    Response.ExpiresAbsolute = Request.Form(“expiresabs_value”)
If Request.Form(“lastmod”) = “on” Then _
    Response.AddHeader “LAST-MODIFIED”, Cstr(Request.Form(“lastmod_value”))
If Request.Form(“pragma”) = “on” Then _
    Response.AddHeader “PRAGMA”, CStr(Request.Form(“pragma_value”))
If Request.Form(“refresh”) = “on” Then _
    Response.AddHeader “REFRESH”, CStr(Request.Form(“refresh_value”))
If Request.Form(“addheader”) = “on” And Len(Request.Form(“addheader_name”)) Then _
    Response.AddHeader CStr(Request.Form(“addheader_name”)), _
            CStr(Request.Form(“addheader_value”))
If Request.Form(“status”) = “on” Then _
    Response.Status = Request.Form(“status_value”)
%>
<HTML>
...
... Show code and execution time
...
其余部分仅仅是显示已被执行的代码和执行时间。读者会注意到包含在网页中的定制的报头“PRAGMA“,一些(先前的)代理服务器使用它作为网页是否应被缓存的指示。缺省是网页被缓冲,除非接受到HTTP报头
“PRAGMA=NO-CACHE“。

当页面的url参数中含有动作指令时,通常我们都会设置页面立即到期,防止同一命令被执行两次。
    发表评论
    请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
    用户名: 验证码:点击我更换图片
    最新评论 更多>>

    推荐热点

    • WAP常见问题问答大全(四)
    • ASP开发必备:WEB打印代码大全
    • ASP调用系统ping命令
    • asp缓存技术
    • ASP教程:第三篇 ASP基础
    • 用ASP+XML打造留言本(4)
    • 关于ASP Recordset 分页出现负数解决方法及建议
    • 用asp怎样编写文档搜索页面(5)
    • ASP处理多关键词查询实例代码
    网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
    Copyright © 2008-2015 计算机技术学习交流网. 版权所有

    豫ICP备11007008号-1