65.9K
CodeProject 正在变化。 阅读更多。
Home

在客户端(浏览器内)和服务器端(IIS/ASP内)共享 JavaScript 源代码

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.50/5 (5投票s)

2003 年 6 月 5 日

2分钟阅读

viewsIcon

118466

downloadIcon

759

本文介绍了一种技巧,可以在客户端(浏览器内)和服务器端(IIS/ASP内)重用相同的源代码(JavaScript)。

客户端和服务器端 JavaScript

本文介绍了一种技巧,可以在客户端(浏览器内)和服务器端(IIS/ASP内)重用相同的源代码(JavaScript)。

JavaScript 是一种神奇的语言,可以在两种截然不同的环境中执行;它可以在浏览器(客户端)以及 Microsoft IIS Web 服务器(服务器端)内运行。在客户端运行,JavaScript 是对 HTML 限制的良好解决方法,并有助于构建用户友好的 Web 应用程序(也称为动态 HTML)。在服务器端运行,JavaScript 能够构建动态 Web 页面(例如从数据库读取数据并将其呈现在 Web 浏览器中)。

客户端 JavaScript

为了在客户端上下文(如 Internet Explorer 或 Netscape 等浏览器中)中使用 JavaScript,您必须使用 client_script.js 的源代码。

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

服务器端 Javascript

要在服务器端上下文(在 Microsoft IIS 的 ASP 引擎内)中使用 JavaScript,您必须使用 <%@ %><% %> 标签

<%@ language="javascript" %>
<%
  Response.Write("This is a server-side message");
%>

或者,您可以使用带有属性 runat 设置为 "server" 的 script 标签

<%@ language="javascript" %>
<script language="javascript" runat="server">
  Response.Write("This is a server-side message");
</script>

并且对于客户端脚本,您可以添加 src 属性

<%@ language="javascript" %>
<script language="javascript" runat="server" src="server_script.js">
</script>

文件 server_script.js

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

共享端 JavaScript

为了在客户端和服务器端上下文中共享相同的源代码,您必须使用外部源文件(通过 src 属性)

文件 "client_server_script.asp"

<%@ language="javascript" %> 
<!-- This will load the JAVASCRIPT code into 
     SERVER-SIDE context (no output in browser) --> 
< script language ="javascript" 
  src ="client_server_script.js" runat ="server"></ script > 

<!-- This will call the JAVASCRIPT code 
                      from SERVER-SIDE context --> 
<p> 
Server: 
<% 
Response.Write(client_server_function("TEST FROM SERVER")); 
%> 
</p> 

<!-- This will include the JAVASCRIPT code 
                   into CLIENT-SIDE context --> 
<script language="javascript" src="client_server_script.js">
</script> 

<!-- This will call the JAVASCRIPT code from CLIENT-SIDE 
   context when you click on the button --> 
<p> 
Client: 
<input type="submit" onclick="alert(client_server_function('TEST FROM CLIENT'));"> 
</p>

文件 "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);
 }

运行时,此页面将输出以下内容

警告:对共享端 JavaScript 文件的限制

您只能在共享 JavaScript 文件中使用基本的 JavaScript 对象、类型、函数和方法,例如

  • 不得在共享源文件中放置任何前缀/声明标签:没有 script<%@ %><% %> 标签
  • 不能使用任何特定于客户端上下文(浏览器的对象模型)的对象、函数或方法

    不要调用 documentbodyframealert...

  • 不能使用任何特定于服务器端上下文(ASP 对象模型)的对象、函数或方法

    不要调用 RequestResponseServer...

参考文献

历史

发布日期:2003 年 6 月 5 日

© . All rights reserved.