How to Delay a HTTP Response in Classic ASP, AKA Classic Sleep Function Alternative Solution

Is There a Sleep Method in Classic ASP?

First, and sorry, there is no built in sleep method in classic ASP. Probably for good reason. Keep reading for my solution below.

The key things to remember about classic ASP is that it is server-side and interpreted. Classic ASP is interpreted into HTML then served out the user’s web browser from the Microsoft IIS web server.

As a prerequisite, I can’t imagine why you would want to delay a Classic ASP page from being served to a user’s web browser for 10 seconds. That’s a long time to make a user wait but you can.

If you cause the HTTP Response to delay for a User Agent like Google bot, Google will probably exclude your website from their search indexes so I normally would not do this in practice on a website that needed any kind of Search Engine Optimization (SEO) friendliness.

Normally, when I think of sleep, I think of the sleep method in JavaScript where we can set a delay in seconds to pause some code in a function.

With Classic ASP, since we don’t have a native sleep or delay method, we can just build our own. By default, I’m going to stay with a delay of specific number of seconds as our end goal.

I’m sure we come up with a few way to do this but this is mine.

Building the Sleep Function from Scratch

  • We will set some variables for a start time and a current time.
  • Then start a While Loop that watches for # of seconds we’ve chosen.
  • We update the current time at each iteration of the loop and check it at start of each loop iteration.
  • Once current time increments by 10 seconds, loop completes giving you a delay of specified seconds.

Classic ASP Sleep Function Code

<%
Sub Delay(intSeconds)
	StartTime = Now()
	CurrentTime = Now()
	While DateDiff("s",StartTime,CurrentTime) < intSeconds
		CurrentTime = Now()
	Wend
End Sub

Response.Write("Something<br>")
call Delay(10)
Response.Write("Something 10 seconds later")
%>

I hope this helps you if you were looking for a simple Classic ASP HTTP Response delay function but be careful how you use it.

~Cyber Abyss