AJAX及使用E4X编写Web服务脚本二


首先值得注意的一行是:

var response = ;

该行允许您将 XML “嵌入”到 JavaScript 中。采用这种语法有两个好处:第一,它确实会使 XML 的使用变得很容易。第二,这些代码的意义非常清晰。

现在您可以向该元素中添加更多的子元素:

response.feet = ft;

这样创建了 子元素,其标记名称被设置为“feet”,并且将数值设置为变量 ft 的值。

您也可以用这种方式操作其属性:

response.@measure = "imperial";

现在我们使用该功能来更新 XML:

for each (var p in x.person) {

if (p.height.@measure=="metric")

p.height=metricToImperial(p.height);

}

print (x);

这里是输出内容:

 

 

 

Ant

 

Shaggy

 

Blue

 

 

5

 

11

 

 

 

 

Paul

 

Spiky

 

Grey

 

 

5

 

12

 

 

E4X 中的 XML 命名空间(Namespace)

如果您是一名 XML 高手,那么此时您可能想知道如何使用该语法来管理 XML 命名空间。这里有三种方式来实现该操作:
首先,您可以使用内嵌的 XML 语法:

var soapMsg =

; print(soapMsg.namespace()); http://www.w3.org/2003/05/soap-envelope 第二个方法是在创建元素之前设置缺省的 XML 命名空间: default xml namespace = new Namespace("http://www.w3.org/2003/05/soap-envelope"); 您可以将它设置为空字符串,以便对该缺省的命名空间进行重新设置,例如: default xml namespace = "" 最后一种方法是使用 :: 运算符 var f = new Namespace("http://fremantle.org"); soapMsg.Body.f::GetStockQuote="IBM"; print(soapMsg);

 

 

IBM

 

 

 

 

XML 元素排序 E4X 所具有的一个明显的优点是它完全支持 XML,包括排序功能。许多从 XML 文档到相应编程语言对象的直接映射仅仅支持符合常规对象语义的 XML 语义子集——因此就失去了不仅能够表示对象而且还表示文档的功能。但是对本文来说,它是不合适的,只要简单查看一下该规范就可以看出,E4X XML 对象具有的内置功能能够对 XML 元素进行细致准确的排序

在 XML 中使用 Javascript 表达式

在转向 Web 服务之前,我们向您介绍的最后一个内容——使用大括号“{}”。以上我们介绍了“内嵌的”XML。E4X 也允许您重新进入 JavaScript 环境,并且可以包括了计算后的表达式值。例如:


var num = 36; var p =


{num}


print(p);

 

36

 

 

 


到目前为止,我们已经介绍了 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 页面上的按钮和内部的工作过程,以此来展示交互性和异步性

本文作者:
« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3