[This is preliminary documentation and subject to change]

# 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.

© 1997-2001 Microsoft Corporation. All rights reserved.