CacheSize-Eigenschaft (Beispiel) (JScript)
In diesem Beispiel wird die CacheSize-Eigenschaft verwendet, um den Leistungsunterschied für einen Vorgang anzuzeigen, der mit und ohne einen Cache mit 30 Datensätzen ausgeführt wird. Schneiden Sie den folgenden Code aus, fügen Sie ihn in Editor oder einem anderen Texteditor ein, und speichern Sie ihn als CacheSizeJS.asp.
<!-- BeginCacheSizeJS -->
<%@ Language="JScript" %>
<%// use this meta tag instead of adojavas.inc%>
<!--METADATA TYPE="typelib" uuid="00000205-0000-0010-8000-00AA006D2EA4" -->
<HTML>
<HEAD>
<title>CacheSize Property Example (JScript)</title>
<style>
<!--
body {
font-family: 'Verdana','Arial','Helvetica',sans-serif;
BACKGROUND-COLOR:white;
COLOR:black;
}
.thead2 {
background-color: #800000;
font-family: 'Verdana','Arial','Helvetica',sans-serif;
font-size: x-small;
color: white;
}
.tbody {
text-align: center;
background-color: #f7efde;
font-family: 'Verdana','Arial','Helvetica',sans-serif;
font-size: x-small;
}
-->
</style>
</HEAD>
<BODY>
<h1>CacheSize Property Example (JScript)</h1>
<%
// connection and recordset variables
var Cnxn = Server.CreateObject("ADODB.Connection")
var strCnxn = "Provider='sqloledb';Data Source=" + Request.ServerVariables("SERVER_NAME") + ";" +
"Initial Catalog='Northwind';Integrated Security='SSPI';";
var rsCustomer = Server.CreateObject("ADODB.Recordset");
// caching variables
var Now = new Date();
var Start = Now.getTime();
var End, Cache, NoCache
try
{
// open connection
Cnxn.Open(strCnxn)
// open a recordset on the Employee table using client-side cursor
rsCustomer.CursorLocation = adUseClient;
rsCustomer.Open("Customers", strCnxn);
// loop through the recordset 20 times
for (var i=1; i<=20; i++)
{
rsCustomer.MoveFirst();
while (!rsCustomer.EOF)
{
// do something with the record
var strTemp = new String(rsCustomer("CompanyName"));
rsCustomer.MoveNext();
}
}
Now = new Date();
End = Now.getTime();
NoCache = End - Start;
// cache records in groups of 30
rsCustomer.MoveFirst();
rsCustomer.CacheSize = 30;
Now = new Date();
Start = Now.getTime();
// loop through the recordset 20 times
for (var i=1; i<=20; i++)
{
rsCustomer.MoveFirst();
while (!rsCustomer.EOF)
{
// do something with the record
var strTemp = new String(rsCustomer("CompanyName"));
rsCustomer.MoveNext();
}
}
Now = new Date();
End = Now.getTime();
var Cache = End - Start;
}
catch (e)
{
Response.Write(e.message);
}
finally
{
// clean up
if (rsCustomer.State == adStateOpen)
rsCustomer.Close;
if (Cnxn.State == adStateOpen)
Cnxn.Close;
rsCustomer = null;
Cnxn = null;
}
%>
<table border="2">
<tr class="thead2">
<th>No Cache</th>
<th>30 Record Cache</th>
</tr>
<tr class="tbody">
<td><%=NoCache%></td>
<td><%=Cache%></td>
</tr>
</table>
</BODY>
</HTML>
<!-- EndCacheSizeJS -->