Click here to Skip to main content
Click here to Skip to main content

Sharing JavaScript source code between client-side (inside a browser) and server-side (inside IIS/ASP)

, 4 Jun 2003
Rate this:
Please Sign up or sign in to vote.
This article presents a trick to reuse the same source code (JavaScript) in client-side (inside a browser) and server-side (inside IIS/ASP).

Client-Side and Server-Side JavaScript

This article presents a trick to reuse the same source code (JavaScript) in client-side (inside a browser) and server-side (inside IIS/ASP).

JavaScript is an amazing language which can be executed in two very different environments; it can run within a browser (client-side) as well as within a Microsoft IIS web server (server-side). Running on client-side, JavaScript is a good workaround for HTML limitations and helps building user-friendly web applications (it's also called Dynamic HTML). Running on server-side, JavaScript enables building dynamic Web pages (for example reading data from a database and presenting it in a Web browser).

Client-Side JavaScript

In order to use JavaScript in client-side context (within a browser like Internet Explorer or Netscape), you have to use the source of the client_script.js.

alert("This is a client-side message");

Server-Side Javascript

To use JavaScript in a server-side context (within Microsoft IIS's ASP engine), you have to use the <%@ %> and <% %> tags:

<%@ language="javascript" %>

Alternatively, you can use the script tag, with the attribute runat set to "server":

<%@ language="javascript" %>

And as for a client-side script, you can add the src attribute:

<%@ language="javascript" %>

File server_script.js:

Response.Write("This is a server-side message");

Shared-Sides JavaScript

In order to share the same source code between client-side and server-side context, you have to use an external source file (via the src attribute):

FICHIER "client_server_script.asp":

<%@ language="javascript" %>

FICHIER "client_server_script.js"

function client_server_function(strText)
 {
   // Just insert a string before the passed string and return it
   return("client_server_function: "+strText);
 }

When run, this page will output the following:

WARNINGS: Restrictions on a Shared-Sides JavaScript file

You can use only basic JavaScript objects, types, functions and methods in a shared JavaScript file, i.e.:

  • You must not put any prefix/declaration tags in the shared source file: no script, <%@ %> or <% %> tags
  • You can't use any object, function or method specific to the client-side context (the browser's object model):

    Do not call document, body, frame, alert...

  • You can't use any object, function or method specific to the server-side context (the ASP object model):

    Do not call Request, Response, Server...

References

History

Date posted: June 5th, 2003

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here

Share

About the Author

Emmanuel Kartmann
Web Developer
France France
Fell into computer software at the age of 11, founder of 3 startups, and now manager of an independent software vendor (ISV) labelled proSDK (www.prosdk.com)... And still a freeware writer and technical article author!

Comments and Discussions

 
GeneralAlternative PinmemberRichard Birkby5-Jun-03 0:40 
An alternative I've used in the past is Javascript Reflection:
 
<!-- #include file="LinkProtocol.inc" -->
 
<%
 
Rem Reflect the functions out to the client
Response.Write LinkType.toString()
Response.Write LinkID.toString()
Response.Write LinkCreate.toString()
Response.Write LinkResolve.toString()
Response.Write LinkResolveAll.toString()
 
%>
General&quot;Bunt&quot; PinsitebuilderUwe Keim5-Jun-03 0:32 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Terms of Use | Mobile
Web01 | 2.8.141223.1 | Last Updated 5 Jun 2003
Article Copyright 2003 by Emmanuel Kartmann
Everything else Copyright © CodeProject, 1999-2014
Layout: fixed | fluid