12、使用页面输出缓存
使用页面输出缓存
可以给页面添加<%@ OutputCache%>指令启用页面输出缓存。
CachePageOutput.aspx
<%@ 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"> protected void Page_Load(object sender, EventArgs e) { lblTime.Text = 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> <asp:Label ID="lblTime" runat="server" /> </div> </form></body></html>Moviesid int 自动增长Title Nvarchar(50)Director nvarchar(50)DateReleased datetimeDescription nvarchar(MAX)
<%@ 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"></script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <asp:GridView ID="grdMovies" AutoGenerateColumns="False" DataSourceID="srcMovies" ShowHeader="False" GridLines="None" runat="server"> <Columns> <asp:HyperLinkField DataTextField="Title" DataNavigateUrlFields="id" DataNavigateUrlFormatString="~/Details.aspx?id={0}" /> </Columns> </asp:GridView> </div> <asp:SqlDataSource ID="srcMovies" runat="server" ConnectionString="<%$ ConnectionStrings:Movies %>" SelectCommand="SELECT [id], [Title] FROM [Movies]"></asp:SqlDataSource> </form></body></html><%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByParam="id" %><!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> <%=DateTime.Now.ToString("T") %> <hr /> <asp:DetailsView ID="dtlMovie" runat="server" DataSourceID="srcMovies"> </asp:DetailsView> </div> <asp:SqlDataSource ID="srcMovies" runat="server" ConnectionString="<%$ ConnectionStrings:Movies %>" SelectCommand="SELECT Movies.* FROM Movies Where Id=@id"> <SelectParameters> <asp:QueryStringParameter Name="id" QueryStringField="Id" Type="Int32" /> </SelectParameters> </asp:SqlDataSource> </form></body></html><connectionStrings> <add name="Movies" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\S4_2.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient" /> </connectionStrings>
<%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByControl="dropCategories" %><!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> <%=DateTime.Now.ToString("T") %> <hr /> <asp:DropDownList ID="dropCategories" runat="server" DataSourceID="srcCategories" DataTextField="Title" DataValueField="id"> </asp:DropDownList> <asp:Button ID="btnSelect" Text="Select" runat="server" /> <br /> <asp:GridView ID="GridView1" runat="server" m GridLines="None" DataSourceID="srcMovies" AutoGenerateColumns="False"> <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> <br /> </div> <asp:SqlDataSource ID="srcCategories" runat="server" ConnectionString="<%$ ConnectionStrings:Movies %>" SelectCommand="SELECT [id], [Title] FROM [Movies]"></asp:SqlDataSource> <asp:SqlDataSource ID="srcMovies" runat="server" ConnectionString="<%$ ConnectionStrings:Movies %>" SelectCommand="SELECT id, Title, Director, DateReleased, Description FROM Movies WHERE id = @id"> <SelectParameters> <asp:ControlParameter ControlID="dropCategories" DefaultValue="Id" Name="id" PropertyName="SelectedValue" /> </SelectParameters> </asp:SqlDataSource> </form></body></html><%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByParam="none" VaryByHeader="User-Agent" %><!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>Vary By Header</title></head><body> <form id="form1" runat="server"> <div> <%=DateTime.Now.ToString("T") %> <hr /> <%=Request.UserAgent %> </div> </form></body></html><%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByParam="none" VaryByCustom="browser" %><!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> <%=DateTime.Now.ToString("T") %> <hr /> <%=Request.UserAgent %> </div> </form></body></html><%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByParam="none" VaryByCustom="css" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e) { if (Request.Browser.SupportsCss) pnlCss.Visible = true; else pnlNotCss.Visible = true; }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title>Vary by custom</title></head><body> <form id="form1" runat="server"> <div> <%=DateTime.Now.ToString("T") %> <hr /> <asp:Panel ID="pnlCss" Visible="false" runat="server"> <span style="font-weight: bold">Hello!</span> </asp:Panel> <asp:Panel ID="pnlNotCss" Visible="false" runat="server"> <b>Hello! not css</b> </asp:Panel> </div> </form></body></html><%@ Page Language="C#" %><%@ OutputCache Duration="3600" VaryByParam="none" Location="Client" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><script runat="server"> protected void Page_Load(object sender, EventArgs e) { Random rnd = new Random(); lblRandom.Text = rnd.Next(10).ToString(); }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <%=DateTime.Now.ToString("T") %> <hr /> Your random number is: <asp:Label ID="lblRandom" runat="server" /> <br /> <br /> <a href="CacheLocation.aspx">Request Page</a> </div> </form></body></html><?xml version="1.0" encoding="utf-8" ?><movies> <movie title="Star Wars" /> <movie title="King Kong" /> <movie title="The Fly" /></movies>
<%@ Page Language="C#" %><%@ OutputCache Duration="9999" 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"> protected void Page_Load(object sender, EventArgs e) { Response.AddFileDependency(MapPath("Movies.xml")); }</script><html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title></head><body> <form id="form1" runat="server"> <div> <%=DateTime.Now.ToString("T") %> <hr /> <asp:GridView ID="GridView1" runat="server" DataSourceID="srcMovies" AutoGenerateColumns="False"> <Columns> <asp:BoundField DataField="title" HeaderText="title" SortExpression="title" /> </Columns> </asp:GridView> </div> <asp:XmlDataSource ID="srcMovies" runat="server" DataFile="Movies.xml"></asp:XmlDataSource> </form></body></html>