When you think ASP, think...
Recent Articles
All Articles
ASP.NET Articles
ASPFAQs.com
Message Board
Related Web Technologies
User Tips!
Coding Tips

Sections:
Sample Chapters
Commonly Asked Message Board Questions
JavaScript Tutorials
MSDN Communities Hub
Official Docs
Security
Stump the SQL Guru!
XML Info
Information:
Feedback
Author an Article
Technology Jobs
ASP ASP.NET ASP FAQs Message Board Feedback ASP Jobs
Print this page.
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:

    - continued -

    '

    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



ASP.NET [1.x] [2.0] | ASPMessageboard.com | ASPFAQs.com | Advertise | Feedback | Author an Article