快速业务通道

ASP.NET 2.0缓存技术探讨

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

本文介绍通过缓存来提高网页的执行效率。

1.ASP.NET Output Caching

当一个网页频繁被访问的时候,我们可以通过把整个网页缓存来提高执行效率。这样作的优点是,当用户再次访问这个网页的时候,被格式化好的HTML会被直接送显。

为什么会存在这种效果呢?我们通过ASP.NET的基本运行机制来解释这个问题。ASP.NET是一个动态的服务器,当用户从客户端提供一个请求的时候,那么服务端的IIS接受到请求,然后根据用户的提示执行相应的代码。执行代码之后生成一个结果。这个结果会被缓存成一个HTML放在Server端,然后通过响应用户的Request将这个HTML传送到客户端。在这之中我们发现,很多时候,用户的请求实际上并没有多大的变化,可能请求的都是相同的内容。这时候执行一次代码的成本就会相当的高。既然我们已经生成了一个HTMl ,我们何必要在重新执行一次代码呢?我们直接把HTML送显就可以了。

l Output Cache是一项非常有效的增强访问性能的技术,由于IIS的一些特性,默认情况下Output Cache是打开的,但是要对一些请求进行缓存,还需要开发者进行定制。

l 定制Output Caching

对于Output Caching的定制,我们有两种方法,一种是基于底层的API技术,一种是基于高层的@Output Caching,一旦Output Caching被定制过,那么这个网页就会在第一次被访问的时候生成cache,直到请求过期为止。

我们着重点是使用高层的@Output Caching标签来设置,因为API技术的编程难度比较大,和ASP.NET快速编程理念不相符。

l 代码示例:通过使用Output Cache定义一个缓存页,显示当前时间,大家可以看到,当这个页面被缓存之后,刷新时,当前时间显示不发生变化。

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
    }
   </script>//head以前。
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
}
   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache Duration="60" VaryByParam="none" %>

l 示例讲解

在这个页面中<%@ Output Cache Duration = “60” VaryByParam = “none”%>

这段话定义了页面将要被缓存,并且,其缓存时间为60秒,并在一个页面被缓存之后,通过定义VaryByParam属性,它不会因为request接受的参数而改变,只有在60秒之后,页面自动清除缓存,此时,第一个访问提供了新的缓存。

l 代码示例:数据访问的小示例,相对显示当前数据示例,这个示例更能显示缓存页之后刷新的性能优势。

<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
    }
   </script>//head以前。
    protected void Page_Load(object sender, EventArgs e)
    {
        TimeMsg.Text = DateTime.Now.ToString();
}
   <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<%@ OutputCache Duration="60" VaryByParam="none" %>//最上面

l 由参数改变缓存内容

有些时候我们需要根据用户的请求来生成页面,但是用户的请求只有有限的几种组合,这个时候就可以根据用户请求来

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号