Published: Tuesday, May 09, 2000
Speeding Up ASP Pages by With Caching
By Andrew Jennings
I was having some issues with my initial default.asp page of my site loading
slow due to the fact that it was loading some product information from a
database. The information on the front page did not change very often
(product specials, categores, etc.), so I implemented a quick script to
cache the results of the .ASP page in an application variable and blast it
out to the user when they request the page. It goes something like this:
1. First rename your default.asp (or whatever page you will be caching) to
something else. In my case, I used default_0.asp.
2. Download or create an HTTP component. I used
SOFTWING's ASPtear for
this example, but you can use anything you like.
(For information on how to use ASPTear, be sure to check out:
Grabbing Information From Other Web Servers.)
3. Replace your default.asp with a new one that looks like this...
<OBJECT RUNAT=server PROGID=SOFTWING.ASPtear ID=ASPGET></OBJECT>
<%
Option Explicit
'Tell the browser not to cache this page
Response.Expires = 0
'check to see if the page cache time has expired
'and if we need to recreate the page contents in
'the cache. I used a 2 hour interval, but you can
'set this to whatever you want depending on your
'requirements
if datediff("h", Application("Default_TimeStamp"), now()) _
>=2 then
Application.Lock
'get the contents of the .ASP page and save them
'in an application variable
Application("Default") = _
ASPGET.Retrieve("http://127.0.0.1/Default_0.asp", 2, "", "", "")
'set the timestamp for caching
Application("Default_TimeStamp") = now()
Application.Unlock
end if
'write the contents of the page to the browser
Response.Write Application("Default")
%>
|
That's it! A quick and easy way to
dramatically speed up the performance of
an individual web page. I wondered whether having buffering turned on would
have a negative impact on the page loading because it was already in memory.
If you wanted, you could schedule a script to run every 2 hours on the
server that would update the Application variable so the user that first
requests the page would not have to wait for the page to be loaded into
cache. There are infinite possibilities here...
For more information on caching data in the Application object, check out these great
articles:
Happy Programming!
Andrew Jennings
Andy.Jennings@eds.com