|
xxx
Page Output Caching
by Charles Carroll
This page demonstrates how database
activity (or any code on a page) can be run less often by using Page Caching.
This page only runs the code once in a 4 minute (240 seconds) period no matter
how many users hit the page.
A caching overview is @
http://www.aspng.com/learn/caching.aspx
This is just one of many caching options.
Then the SQL7/2000 Sample:
filename=/experiments/caching/searcher_v1_cached.aspx
<%@ trace="true"%>
<%@ Import Namespace="System.Data.OLEDB" %>
<script language="VB" runat="server">
Dim strConn as string="PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" & server.mappath("/experiments/data/biblio.mdb") & ";"
Sub Page_Load(Src As Object, E As EventArgs)
searchagain.visible=false
If ispostback = false THEN
Dim strSQL as string
Dim Conn as New OLEDBConnection(strConn)
strSQL="select distinct city from publishers"
Dim Cmd as New OLEDBCommand(strSQL,Conn)
Conn.Open()
cy.DataSource = Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
cy.DataBind()
Conn.Close()
strSQL="select distinct state from publishers"
Dim Cmd2 as New OLEDBCommand(strSQL,Conn)
Conn.Open()
st.DataSource = Cmd2.ExecuteReader(system.data.CommandBehavior.CloseConnection)
st.DataBind()
Conn.Close()
strSQL="select distinct zip from publishers"
Dim Cmd3 as New OLEDBCommand(strSQL,Conn)
Conn.Open()
zp.DataSource = Cmd3.ExecuteReader(system.data.CommandBehavior.CloseConnection)
zp.DataBind()
Conn.Close()
END IF
End Sub
Sub Search_click(s as object, e as eventargs)
trace.write("city",cy.selecteditem.text)
trace.write("state",st.selecteditem.text)
trace.write("zip",zp.selecteditem.text)
trace.write("cityinc",cyinclude.checked)
trace.write("stateinc",stinclude.checked)
trace.write("zipinc",zpinclude.checked)
DIM strSQL as string
DIM prefix as string
searchcriteria.visible=false
search.visible=false
searchagain.visible=true
searchresults.visible=true
strSQL="select * from publishers where "
If cyinclude.checked=false AND stinclude.checked=false AND zpinclude.checked=false THEN
message.text="You did not choose any search categories so we cannot Search"
searchresults.visible=false
exit sub
ELSE
message.text=""
END IF
IF cyinclude.checked THEN
strSQL=strSQL & " city='" & cy.selecteditem.text & "' "
prefix=" AND "
END IF
IF stinclude.checked THEN
strSQL=strSQL & prefix & " state='" & st.selecteditem.text & "' "
prefix=" AND "
END IF
IF zpinclude.checked THEN
strSQL=strSQL & prefix & " zip='" & zp.selecteditem.text & "' "
END IF
trace.write("strSQL",strSQL)
Dim Conn as New OLEDBConnection(strConn)
Dim Cmd as New OLEDBCommand(strSQL,Conn)
Conn.Open()
searchresults.DataSource = Cmd.ExecuteReader(system.data.CommandBehavior.CloseConnection)
searchresults.DataBind()
Conn.Close()
END SUB
SUB Searchagain_click(s as object, e as eventargs)
searchcriteria.visible=true
searchresults.visible=false
searchagain.visible=false
search.visible=true
END SUB
</script>
<html><head>
<title>Searcher</title>
</head>
<body bgcolor="#FFFFFF">
<form runat="server">
<asp:literal id="message" runat="server"/>
<asp:Table id="searchcriteria" runat="server" GridLines="both" BorderWidth="1px">
<asp:TableRow>
<asp:TableCell>City</asp:TableCell>
<asp:TableCell>
<ASP:DropDownList id="cy" datatextfield="city" runat="server"/>
</asp:TableCell>
<asp:TableCell>
<ASP:checkbox id="cyinclude" text="include in Search?" runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>State</asp:TableCell>
<asp:TableCell>
<ASP:DropDownList id="st" datatextfield="state" runat="server"/>
</asp:TableCell>
<asp:TableCell>
<ASP:checkbox id="stinclude" text="include in Search?" runat="server"/>
</asp:TableCell>
</asp:TableRow>
<asp:TableRow>
<asp:TableCell>Zip</asp:TableCell>
<asp:TableCell>
<ASP:DropDownList id="zp" datatextfield="zip" runat="server"/>
</asp:TableCell>
<asp:TableCell>
<ASP:checkbox id="zpinclude" text="include in Search?" runat="server"/>
</asp:TableCell>
</asp:TableRow>
</asp:Table>
<asp:button id="search" text="search for data" onclick="search_click" runat="server"/><br>
<asp:button id="searchagain" text="search for data again" onclick="searchagain_click" runat="server"/>
<ASP:DataGrid id="searchresults" runat="server"
Width="100%"
BackColor="white"
BorderColor="black"
ShowFooter="false"
CellPadding=3
CellSpacing="0"
Font-Name="Verdana"
Font-Size="8pt"
Headerstyle-BackColor="lightblue"
Headerstyle-Font-Size="10pt"
Headerstyle-Font-Style="bold"
MaintainState="false"
/>
</form>
</body></html>
 |  |  |
 |
There are many worthy charities!!. But perhaps help starving children in Africa or South America AND help Charles too.
a $5 tip buys him lunch at McDonalds,
a $20 tip buys his kid Hitoshi a new computer game,
a $39 tip buys his daughter Michiko a few nice outfits.
See our donor list.
|  |
 |  |  |
|
|
|
|