AJAX及使用E4X编写Web服务脚本(1)(4)
E4X 所具有的一个明显的优点是它完全支持 XML,包括排序功能。许多从 XML 文档到相应编程语言对象的直接映射仅仅支持符合常规对象语义的 XML 语义子集――因此就失去了不仅能够表示对象而且还表示文档的功能。但是对本文来说,它是不合适的,只要简单查看一下该规范就可以看出,E4X XML 对象具有的内置功能能够对 XML 元素进行细致准确的排序。
在 XML 中使用 Javascript 表达式
在转向 Web 服务之前,我们向您介绍的最后一个内容――使用大括号“{}”。以上我们介绍了“内嵌的”XML。E4X 也允许您重新进入 JavaScript 环境,并且可以包括了计算后的表达式值。例如:
var num = 36;
var p =
print(p);
到目前为止,我们已经介绍了 E4X 的基础知识,下面我们就可以使用这些基本知识进行以下操作。
使用 E4X 来调用 Web 服务
本节中,我们将描述如何在以下两个环境中使用 E4X:
1. 使用 XMLHttpRequest 的 Mozilla 1.8
2. Java/Rhino
您可以很容易地在浏览器中使用 E4X 来调用 Web 服务。但是这里存在问题!到目前为止,唯一的支持 E4X 的浏览器是 Mozilla 1.8 的专业版。不过我们并没有将其作为一种可移植的跨浏览器的解决方案来推荐,以下的实例演示了 E4X 如何以一种简单的方式来调用 Web 服务。在下一节中,我们将查看运行在 Rhino JavaScript 引擎中的另一种方法。
AJAX
该样本实例显示了向 SOAP 服务器发送和接收 SOAP 消息的浏览器。为了实现该操作,我们通过 XMLHttpRequest 对象来使用 E4X 。这个对象非常的有用,而且 Mozilla 和 Internet Explorer 浏览器都支持它,它允许运行在浏览器内部的脚本语言在后台中生成 HTTP 请求。实际上,这就是为什么 Google 的 GMail 能做到任何事情的原因。这种架构最近被命为 Asynchronous JavaScript+XML(AJAX)。
从根本上来说,AJAX 的目的是要通过一种比标准 HTML 和 HTTP 的“页面”模型更为灵活的方式与服务器进行交互,以此来提高 Web 页面的响应能力和可用性。有关这方面一个很好的样本是 Google Maps beta,它明显地比以前的映射 Web 站点更具交互性。
令人鼓舞的是,根据新闻报道,结合了 E4X 的 AJAX 的性能更优!我们将向您展示浏览器应用的两种版本。第一个版本演示了交互操作,而第二个版本隐藏了 Web 页面上的按钮和内部的工作过程,以此来展示交互性和异步性。
浏览器的安全性
为了演示浏览器的安全性,我们使用了 xmethods.net 上可用的标准 Web 服务。但是,这里还存在一个问题,因为一般来说,浏览器的安全性规则不允许脚本程序或者 Java applet 程序创建网络连接,除非是与生成该页面的服务器建立网络连接。否则,您需要有一个监控页面,它将您的按键操作“复制”到另外一个服务器。
但是您可以避开这种操作。为实现该操作,您需要进行两步。首先,您必须启用 Mozilla 配置中的用于脚本程序的升级特权。(假定您已经下载并安装了 Mozilla 1.8 beta)。
在该浏览器的地址栏中输入 about:config,然后将 signed.applets.codebase_principal_support 的值从 false 更新为 true。(出于安全性考虑,请记得在完成全部操作后设回原值。)
然后在脚本程序中,您可以请求使用升级特权。当该脚本语言运行时,将会提示用户使用这些特权。代码行为:
netscape.security.PrivilegeManager.enablePrivilege( "UniversalXPConnect UniversalBrowserAccess");
其它的选择就是将服务和 Web 页面部署到诸如 IBM® WebSphere® Application Server 或者 Tomcat 之类的 Web 应用程序服务器中。例如,这种方式适用 Apache Axis 和 Axis 自带的缺省股票报价机样本实例。
- 上一篇:Ajax驱动的Web站点
- 下一篇:.net Ajax无刷新技术