ASP.NET 2.0缓存技术探讨
本文介绍通过缓存来提高网页的执行效率。
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
相关文档:
黑色微笑学asp.net(第一个.net程序)
先看效果(加颜色纯属为了看清楚一点):
执行前:
执行后:
再看一下代码:
前台:
<body bgcolor="#ff00ff">
<form id="form1" runat="server">
<div>
<asp:TextBox ID="TextBox1" runat="server" ForeColor="Blac ......
------本文转载自网络,所有权归作者所有
如果你已经有较多的面向对象开发经验,跳过以下这两步:
第一步 掌握一门.NET面向对象语言,C#或VB.NET。
我强烈反对在没系统学过一门面向对象(OO)语言的前提下去学ASP.NET。
ASP.NET是一个全面向对象的技术,不懂OO,那绝对学不下去!
第二步 对.NET Framework类库有一 ......
在最近的项目中,遇到一个问题,要实现这样的效果:
点pic_small.Aspx页面的缩略图后弹出pic_all.aspx页面,pic_all.aspx页面的大小要根据图片大小自动调整,而且要有图片的说明信息,还可以点上一幅和下一幅等进行翻页。
实现过程如下:
pic_small.Aspx页面缩略图处的代码为:
<IMG id="imgPic" style="CURSOR: h ......
前台 如果你用的是 gridview 就把Repeater替换成gridview 。一样的。。
<form id="frm01" action="" method="post" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server">
& ......