您当前的位置是:首页-SEO宝典

如何利用输出缓存技术缓存整个页面

【发表于】:2010/12/28 13:24:00  已被访问:188次
输出缓存是一种功能强大的技术,它通过缓存动态生成的页面来提高请求/响应的吞吐量。在访问量 
大的网站中,可以将频繁访问的页面放入缓存,当有户再次发出相同请求时将缓存中的页面传回用户浏览
器,从页省去了重新生成页面的时间,提高了程序的性能。程序默认情况下启用输出缓存,但是却不为任
何响应都输出缓存的条件,除非使用页面指令明确指。
       设置页面缓存,需要使用“@OutputCache”指令。启用输出缓存后,当发出对页面的第一个GET请求
时创建一个输出缓存项,随后的GET请求用该输出缓存项提供服务,直到该缓存请求过期。
       激活输出缓存功能的指令如下:
       第一种:通过HTML代码来实现:<%@ OutputCache Duration="90" VaryByParam="none" %>
       引指令批示页面缓存时间是90秒(默认值为60秒),并且页面不随任何GET或POST参数改变。
       第二种:通过代码来实现:Response.Cache.SetExpires(DateTime.Now.AddSeconds(60));
                                                 ResPonse.Cache.SetCacheability(HttpCacheability.Public);
       SetExpires()方法用于设定缓存有效时间,参数为DateTime类型。SetCacheability()方法用于设定http头的Cache-Control部分,参数由HttpCacheability枚举提供。HttpCacheability 包含四个成员:
       1.NoCache指定如果没有字段名,则指令应用于整个请求,且在满足请示前,共享(代理服务器)缓存必须对原始Web服务器强制执行成功的重新验证。如果字段名,则指令仅应用于命名字段,响应的其余部分可能由共享缓存提供。
      2.Private指定响应只能缓存在客户端,而不能由共享(代理服务器)缓存进行缓存。此成员默认值。
      3.Public指定响应能由客户端和共享(代理)缓存进行缓存。
      4.Server指定响应仅缓存在源服务器上,与NoCache选项相似。客户端接收Cache-Control:no-cache指令,但文档是在原始服务器上缓存的。
      下面是一个利用缓存技术的实例。示例页的代码如下所示:
<%@ OutputCache Duration="10" VaryByParam="none" %>
<HTML>
 <HEAD>
  <title>WebForm1</title>
  <meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
  <meta name="CODE_LANGUAGE" Content="C#">
  <meta name="vs_defaultClientScript" content="JavaScript">
  <meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
  <script language="C#" runat="server">
           void Page_Load(Object sender, EventArgs e) 
           {
              Msg.Text = DateTime.Now.ToString();
           }
  </script>
 </HEAD>
 <body MS_POSITIONING="GridLayout">
  <form id="WebForm1" method="post" runat="server">
   <asp:Label id="Label1" style="Z-INDEX: 101; LEFT: 280px; POSITION: absolute; TOP: 40px" runat="server" Font-Bold="True">输出缓存示例</asp:Label>
   <asp:Label id="Label2" style="Z-INDEX: 102; LEFT: 208px; POSITION: absolute; TOP: 104px" runat="server">页面上次生成的时间:</asp:Label>
   <asp:Label id="Msg" style="Z-INDEX: 103; LEFT: 384px; POSITION: absolute; TOP: 104px" runat="server"></asp:Label>
   <asp:Button id="Button1" style="Z-INDEX: 104; LEFT: 312px; POSITION: absolute; TOP: 168px" runat="server" Text="Button"></asp:Button>
  </form>
 </body>
</HTML>
 
上下篇: Url Rewrite伪静态范化与SEO seo优化过度的特征分析及解决方法

最新推荐信息