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






3.50/5 (5投票s)
2003 年 6 月 5 日
2分钟阅读

118466

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
、<%@ %>
或<% %>
标签 - 您不能使用任何特定于客户端上下文(浏览器的对象模型)的对象、函数或方法
不要调用
document
、body
、frame
、alert
... - 您不能使用任何特定于服务器端上下文(ASP 对象模型)的对象、函数或方法
不要调用
Request
、Response
、Server
...
参考文献
历史
发布日期:2003 年 6 月 5 日