Ajax基础教程(2)-使用XMLHttpRequest对象 2.5 远程脚本

我们已经介绍了Ajax,下面来简单谈谈远程脚本。你可能会想:“Ajax有什么大不了的?我早就用IFRAME做过同样的事情。”实际上,我们自己也曾用过这种方法。这在以前一般称为远程脚本(remote scripting),很多人认为这只是一种修修补补。不过,这确实提供了一种能避免页面刷新的机制。

2.5.1 远程脚本概述

基本说来,远程脚本是一种远程过程调用类型。你可以像正常的Web应用一样与服务器交互,但是不用刷新整个页面。与Ajax类似,你可以调用任何服务器端技术来接收请求、处理请求并返回一个有意义的结果。正如在服务器端有很多选择,客户端同样有许多实现远程脚本的选择。你可以在应用中嵌入Flash动画、Java applet,或者ActiveX组件,甚至可以使用XML-RPC,但是这种方法过于复杂,因此除非你使用这种技术很有经验,否则这种方法不太合适。实现远程脚本的通常做法包括将脚本与一个IFRAME(隐藏或不隐藏)结合,以及由服务器返回JavaScript,然后再在浏览器中运行这个JavaScript。

Microsoft提供了自己的远程脚本解决方案,并聪明地称之为Microsoft远程脚本(Microsoft Remote Scripting,MSRS)。采用这种方法,可以像调用本地脚本一样调用服务器脚本。页面中嵌入Java applet,以便与服务器通信,.asp页面用于放置服务器端脚本,并用.htm文件管理客户端的布局摆放。在Netscape和IE 4.0及更高版本中都可以使用Microsoft的这种解决方案,可以同步调用,也可以异步调用。不过,这种解决方案需要Java,这意味着可能还需要附加的安装例程,而且还需要Internet Information Services(IIS),因此会限制服务器端的选择。

Brent Ashley为远程脚本创建了两个免费的跨平台库。JSRS是一个客户端JavaScript库,它充分利用DHTML向服务器做远程调用。相当多的操作系统和浏览器上都能使用JSRS。如果采用一些常用的、流行的服务器端实现(如PHP、Python和Perl CGI),JSRS一般都能在网站上安装并运行。Ashley免费提供了JSRS,而且还可以从他的网站(www.ashleyit.com/rs/main.htm)上得到源代码。

如果你觉得JSRS太过笨重,Ashley还创建了RSLite,这个库使用了cookie。RSLite仅限于少量数据和单一调用,不过大多数浏览器都能提供支持。

2.5.2 远程脚本的示例

为了进行比较,这里向你展示如何使用IFRAME来实现类似Ajax的技术。这非常简单,而且过去我们就用过这种方法(在XMLHttpRequest问世之前)。这个示例并没有真正调用服务器,只是想让你对如何使用IFRAME实现远程脚本有所认识。

这个示例包括两个文件:iframe.html(见代码清单2-2)和server.html(见代码清单2-3)。server.html模拟了本应从服务器返回的响应。

代码清单2-2 iframe.html文件

<html>
<head>
<title>Example of remote scripting in an IFRAME</title>
</head>
<script type="text/javascript">
function handleResponse() {
alert('this function is called from server.html');
}
</script>
<body>
<h1>Remote Scripting with an IFRAME</h1>
<iframe id="beforexhr"
name="beforexhr"
style="width:0px; height:0px; border: 0px"
src="blank.html"></iframe>
<a href="server.html" target="beforexhr">call the server</a>
</body>
</html>

时间: 2024-11-03 19:15:48

Ajax基础教程(2)-使用XMLHttpRequest对象 2.5 远程脚本的相关文章

Ajax基础教程(2)-使用XMLHttpRequest对象 2.9 小结

尽管Ajax风格的技术已经用了很多年,但直到最近XMLHttpRequest对象才得到现代浏览器的采纳,而这也为开发丰富的Web应用开启了一个新的时代.在本章中,我们讨论了Ajax核心(即XMLHttpRequest对象)的相关基础知识.我们了解了XMLHttpRequest对象的方法和属性,而且展示了使用XMLHttpRequest对象的简单示例.可以看到,这个对象相当简单,无需你考虑其中很多的复杂性.适当地使用JavaScript,再加上基本的DOM管理,Ajax可以提供高度的交互性,而这在

Ajax基础教程(2)-使用XMLHttpRequest对象 2.7 DOM Level 3 加载和保存规约

到目前为止,我们讨论的解决方案都不是标准.尽管XMLHttpRequest得到了广泛支持,但是你已经看到了,创建XMLHttpRequest对象的过程会随浏览器不同而有所差异.许多人错误地认为Ajax得到了W3C的支持,但实际上并非如此.W3C在一个新标准中解决了这一问题以及其他缺点,这个标准的名字相当长:DOM Level 3 加载和保存规约.这个规约的设计目的是以一种独立于平台和语言的方式,用XML内容修改DOM文档的内容.2004年4月提出了1.0版本,但到目前为止,还没有浏览器实现这个规

Ajax基础教程(2)-使用XMLHttpRequest对象 2.4 GET与POST

你可能想了解GET和POST之间有什么区别,并想知道什么时候使用它们.从理论上讲,如果请求是幂等的就可以使用GET,所谓幂等是指多个请求返回相同的结果.实际上,相应的服务器方法可能会以某种方式修改状态,所以一般情况下这是不成立的.这只是一种标准.更实际的区别在于净荷的大小,在许多情况下,浏览器和服务器会限制URL的长度URL用于向服务器发送数据.一般来讲,可以使用GET从服务器获取数据:换句话说,要避免使用GET调用改变服务器上的状态. 一般地,当改变服务器上的状态时应当使用POST方法.不同于

Ajax基础教程(2)-使用XMLHttpRequest对象 2.3 交互示例

看到这里,你可能想知道典型的Ajax交互是什么样.图2-1显示了Ajax应用中标准的交互模式. 图2-1 标准Ajax交互 不同于标准Web客户中所用的标准请求/响应方法,Ajax应用的做法稍有差别. 1. 一个客户端事件触发一个Ajax事件.从简单的onchange事件到某个特定的用户动作,很多这样的事件都可以触发Ajax事件.可以有如下的代码: <input type="text"d="email" name="email" onblu

Ajax基础教程(2)-使用XMLHttpRequest对象 2.2 方法和属性

表2-1显示了XMLHttpRequest对象的一些典型方法.不要担心,稍后就会详细介绍这些方法. 下面来更详细地讨论这些方法. void open(string method, string url, boolean asynch, string username, string password):这个方法会建立对服务器的调用.这是初始化一个请求的纯脚本方法.它有两个必要的参数,还有3个可选参数.要提供调用的特定方法(GET.POST或PUT),还要提供所调用资源的URL.另外还可以传递一个

Ajax基础教程(2)-使用XMLHttpRequest对象 2.1 概述

在使用XMLHttpRequest对象发送请求和处理响应之前,必须先用JavaScript创建一个XMLHttpRequest对象.由于XMLHttpRequest不是一个W3C标准,所以可以采用多种方法使用JavaScript来创建XMLHttpRequest的实例.Internet Explorer把XMLHttpRequest实现为一个ActiveX对象,其他浏览器(如Firefox.Safari和Opera)把它实现为一个本地JavaScript对象.由于存在这些差别,JavaScrip

Ajax基础教程(2)-使用XMLHttpRequest对象 2.8 DOM

我们一直在说DOM,如果你没有做过太多客户端的工作,可能不知道什么是DOM.DOM是一个W3C规约,可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构.换句话说,这是表示和处理一个HTML或XML文档的常用方法. 有一点很重要,DOM的设计是以对象管理组织(OMG)的规约为基础的,因此可以用于任何编程语言.最初人们把它认为是一种让JavaScript在浏览器间可移植的方法,不过DOM的应用已经远远超出这个范围. DOM实际上是以面向对象方式描述的对象模型.DOM定义了表示和修改文档所

AJAX基础教程及初步使用

ajax|基础教程 Ajax基础教程 什么是 AJAX? AJAX (异步 JavaScript 和 XML) 是个新产生的术语,专为描述JavaScript的两项强大性能.这两项性能在多年来一直被网络开发者所忽略,直到最近Gmail, Google suggest和google Maps的横空出世才使人们开始意识到其重要性. 这两项被忽视的性能是: 无需重新装载整个页面便能向服务器发送请求. 对XML文档的解析和处理. 步骤 1 – "请!" --- 如何发送一个HTTP请求 为了用

技术新知:AJAX基础教程

ajax|基础教程     什么是 AJAX? AJAX (异步 JavaScript 和 XML) 是个新产生的术语,专为描述JavaScript的两项强大性能.这两项性能在多年来一直被网络开发者所忽略,直到最近Gmail, Google suggest和google Maps的横空出世才使人们开始意识到其重要性. 这两项被忽视的性能是:     * 无需重新装载整个页面便能向服务器发送请求.    * 对XML文档的解析和处理. 步骤 1 – "请!" --- 如何发送一个HTTP