Interacting with Client-Side Scripts
ASP's effectiveness can be extended by using it to generate or manipulate client-side scripts. For example, you can write server-side scripts that assemble client-side scripts based on server-specific variables, a user's browser type, or HTTP request parameters.
By interspersing server-side script statements within client-side scripts (enclosed by HTML <SCRIPT> tags), as shown in the following example template, you can dynamically initialize and alter client-side scripts at the request time:
<SCRIPT LANGUAGE="VBScript">
<!--
variable = <%=
server defined value %>
.
.
.
client-side script
<%
server-side script used to generate a client-side statement %>
client-side script
.
.
.
-->
</SCRIPT>
Incorporating such functionality can produce some useful and interesting applications. For example, the following is a simple server-side script (written in VBScript) that manipulates a client-side script (written in JScript):
<%
Dim dtmTime, strServerName, strServerSoftware, intGreeting
dtmTime = Time()
strServerName = Request.ServerVariables("SERVER_NAME")
strServerSoftware = Request.ServerVariables("SERVER_SOFTWARE")
'Generate a random number.
Randomize
intGreeting = int(rnd * 3)
%>
<SCRIPT LANGUAGE="JScript">
<!--
//Call function to display greeting
showIntroMsg()
function showIntroMsg()
{
switch(<%= intGreeting %>)
{
case 0:
msg = "This is the <%= strServerName%> Web server running <%= strServerSoftware %>."
break
case 1:
msg = "Welcome to the <%= strServerName%> Web server. The local time is <%= dtmTime %>."
break
case 2:
msg = "This server is running <%= strServerSoftware %>."
break
}
document.write(msg)
}
-->
</SCRIPT>
Scripts of this kind can be expanded, for example, to configure a client-side database or a DHTML personalization script. Innovative use of this technique can also reduce round-trips and server processing.