预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Ajax已普遍用于许多知名的Web应用程序服务例如GMail、GoogleMaps、Flickr和Odeo.com。通过使用异步XML消息传递Ajax为Web开发人员提供了一种扩展其Web应用程序价值和功能的途径。这里介绍的WebServicesJavaScriptLibrary扩展了该基础机制其通过引入对调用基于SOAP的Web服务的支持来增强Ajax设计模式。从浏览器中调用Web服务请访问Ajax技术资源中心这是有关Ajax编程模型信息的一站式中心包括很多文档、教程、论坛、blog、wiki和新闻。任何新信息都能在这里找到。从Web浏览器中调用SOAPWeb服务可能会比较麻烦这是因为大多数流行的Web浏览器在生成和处理XML方面都略有不同。所有浏览器都一致实现且用于XML处理的标准API或功能少之又少。浏览器实现人员一致支持的机制之一是XMLHttpRequestAPI它是Ajax设计模式的核心。developerWorks网站最近发布的另一篇由PhilipMcCarthy撰写的的文章详细介绍了该API。XMLHttpRequest是一个用于执行异步HTTP请求的JavaScript对象。PhilipMcCarthy在其文章中描述了一个顺序图(请参见图1)此图对于理解XMLHttpRequest对象如何支持Ajax设计非常有帮助(请参阅参考资料以获得指向全文的链接)。图1.PhilipMcCarthy的Ajax顺序图从此图中您可以清楚地看到XMLHttpRequest对象是如何工作的。一些运行在Web浏览器内的JavaScript创建了一个XMLHttpRequest实例和一个用于异步回调的函数。然后该脚本使用XMLHttpRequest对象对服务器执行HTTP操作。在接收到响应后调用回调函数。在该回调函数内可能处理返回的数据。如果返回的数据碰巧是XML则XMLHttpRequest对象将自动使用浏览器中内置的XML处理机制来解析该数据。遗憾的是使用Ajax方法的主要难题在于XMLHttpRequest对象自动解析XML的详细过程。例如假设我正在请求的数据是一个SOAP信封其包含来自许多不同XML命名空间的元素并且我希望提取yetAnotherElement中属性attr的值。(请参见清单1)清单1.一个包含多个命名空间的SOAP信封<s:Envelopexmlns:s="http://schemas.xmlsoap.org/soap/envelope/"xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><s:Header/><s:Body><m:someElementxmlns:m="http://example"><n:someOtherElementxmlns:n="http://example"xmlns:m="urn:example"><m:yetAnotherElementn:attr="abc"xmlns:n="urn:foo"/></n:someOtherElement></m:someElement></s:Body></s:Envelope>在Mozilla浏览器和Firefox浏览器中提取attr属性值非常简单如清单2所示。清单2.在Mozilla和Firefox中检索attr属性值的方法不能运用在InternetExplorer中varm=el.getElementsByTagNameNS('urn:example''yetAnotherElement')[0].getAttributeNS('urn:foo''attr');alert(m);//displays'abc'关于安全性由于涉及许多实际安全问题因此在缺省情况下大多数Web浏览器中的XMLHttpRequest对象都限制为只能与用户正在查看的Web页所在的域中承载的资源和服务进行交互。例如如果我正在访问一个位于http://example.com/myap