【IT168 技术文档】
利用缓存,可以较高提升web应用程序的性能。
ASP.NET页面中执行最慢的操作是数据库的访问。打开一个数据库连接并读取数据是很慢的操作。改进性能的最好方法是改进访问数据的代码而不是访问数据库的代码。
ASP.NET 2.0 Framework支持下列类型的缓存:
·页面输出缓存
·局部页面缓存
·数据源缓存
·数据缓存
使用页面输出缓存
可以给一个页面添加<% OutputCache %>指令启动页面输出缓存。例如,下面代码使得输出的页面能缓存15秒。
<%@ Page Language="C#" %>
<%@ OutputCache Duration="15" VaryByParam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
lblTime.Text = DateTime.Now.ToString("T");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Cache Page Output</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblTime"
Runat="server" />
</div>
</form>
</body>
</html>
<%@ OutputCache Duration="15" VaryByParam="none" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
void Page_Load()
{
lblTime.Text = DateTime.Now.ToString("T");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml" >
<head id="Head1" runat="server">
<title>Cache Page Output</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label
id="lblTime"
Runat="server" />
</div>
</form>
</body>
</html>
使用参数改变输出缓存
有时候我们同一个页面在根据传入的不同参数时会显示不同的内容,如果这种情况使用上面的缓存就会导致传入任何不用参数都会显示相同的缓存内容,这个时候可以使用VaryByParam属性来解决这个问题。VaryByParam属性会在传入不用参数时使页面缓存新的实例。
<%@ OutputCache Duration="3600" VaryByParam="id" %>
传入的参数名称为id。
可以给VaryByParam属性赋两个特殊的值。
none——传入的参数都被忽略了,只有一个版本的页面缓存;
*——传入参数的任意变化都会创建一个新版本的页面缓存。
如果希望根据不只一个参数值的变化来创建不用的页面缓存版本,那么可以用分号分隔一组参数列表给VaryByParam属性。