14、使用部分ページキャッシュ
部分ページキャッシュを使う
1、キャッシュを使って置換する
AdRotatorコントロールの内部はキャッシュを使用して置き換えられます.
Substitutionコントロールを使う
Substition Control.aspx
ShowWriteSubstition.aspx
2、ユーザコントロールキャッシュ
キャッシュされたAsp.netページと同様に、ユーザーコントロールの表示内容をメモリにキャッシュします.
ユーザコントロールに<%@OutputCache>コマンドを追加しないと、ユーザコントロールの出力内容がキャッシュされます.
注意:
ユーザコントロールがキャッシュされると、プロキシサーバやブラウザにキャッシュされるのではなく、Webサーバにコンテンツがキャッシュされる.プロキシサーバまたはブラウザがページをキャッシュするとき、それらは常にページ全体をキャッシュする.
Movies.ascx
1、キャッシュを使って置換する
AdRotatorコントロールの内部はキャッシュを使用して置き換えられます.
Substitutionコントロールを使う
Substition Control.aspx
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public static string GetTime(HttpContext context)
{
return DateTime.Now.ToString("T");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
The cache time is :<%=DateTime.Now.ToString("T") %>
<hr />
The substitution time is:
<asp:Substitution ID="Substitution1" MethodName="GetTime" runat="server" />
</div>
</form>
</body>
</html>
プログラミングでResonse.WriteSubstition()を使います.ShowWriteSubstition.aspx
<%@ Page Language="C#" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
public static string GetTime(HttpContext context)
{
return DateTime.Now.ToString("T");
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
The cache time is :<%=DateTime.Now.ToString("T") %>
<hr />
The substitution time is:
<% Response.WriteSubstitution(GetTime); %>
</div>
</form>
</body>
</html>
2011-5-28 22:26ダニー2、ユーザコントロールキャッシュ
キャッシュされたAsp.netページと同様に、ユーザーコントロールの表示内容をメモリにキャッシュします.
ユーザコントロールに<%@OutputCache>コマンドを追加しないと、ユーザコントロールの出力内容がキャッシュされます.
注意:
ユーザコントロールがキャッシュされると、プロキシサーバやブラウザにキャッシュされるのではなく、Webサーバにコンテンツがキャッシュされる.プロキシサーバまたはブラウザがページをキャッシュするとき、それらは常にページ全体をキャッシュする.
Movies.ascx
<%@ Control Language="C#" ClassName="Movies" %>
<%@ OutputCache Duration="600" VaryByParam="none" %>
<script runat="server">
</script>
User Control Time:
<%=DateTime.Now.ToString("T") %>
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="id" HeaderText="id" InsertVisible="False"
ReadOnly="True" SortExpression="id" />
<asp:BoundField DataField="Title" HeaderText="Title" SortExpression="Title" />
<asp:BoundField DataField="Director" HeaderText="Director"
SortExpression="Director" />
<asp:BoundField DataField="DateReleased" HeaderText="DateReleased"
SortExpression="DateReleased" />
<asp:BoundField DataField="Description" HeaderText="Description"
SortExpression="Description" />
</Columns>
</asp:GridView>
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
SelectCommand="SELECT * FROM [Movies]"></asp:SqlDataSource>
ShowUserControl Cache.aspx
<%@ Page Language="C#" %>
<%@ Register TagPrefix="user" TagName="Movies" Src="~/Movies.ascx" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
Page Time:
<%=DateTime.Now.ToString("T") %>
<hr />
<user:Movies ID="Movies" runat="server" />
</div>
</form>
</body>
</html>
2011-5-29 19:10ダニー