在基于Mozilla的浏览器中使用XMLHttpRequest对象(3) 如果你分析link_data.xml的代码,你会注意到onchange事件处理程序只是简单地获取XML数据岛的link_data节点然后更新text节点的值。对于这个解决方案这是一个非常简单的方法;它只在文本框中的值有改动之后才会更新数据。这不属于two-way绑定机制,因为如果节点的值改变了,其改变不会反映到文本框。
当用户点击Test按钮的时候,奇怪的事情发生了。一个新的XMLHttpRequest对象被创建用来向服务器改善XML数据。然后,就像XMLHTTP组件在IE中的工作方式一样,你使用open()方法打开远程页面。在这个例子中,我添加了一个查询字符串到xml_http.asp页面中,所以我可以使用同一个页面处理XML传输。使用send()方法,我传递xmlData数据岛的innerHTML。(在IE中,这与指定xmlData数据岛的XML属性一样)。
在xml_http.asp页面被装载时,它检查“action”参数是否传递给页面,并且那个参数是否等于“update”。如果是——就是在我们发出XMLHttpRequest请求的时候——它创建一个DOMDocument组件,从Request对象装载XML,然后返回DOMDocument的xml。Request对象暴露出IStream接口,允许DOMDocument直接从Request对象装载xml。(在另外一种语言中,你可以使用从HTTP请求中发送过来的POST数据。)
这是一个非常简单的例子,说明了Mozilla的XML能力。在Mozilla中操作XML的其中一个缺点就是文档不怎么样。不过上面已经提到过,对于绝大多数部分,你可以使用针对微软的XMLHTTP组件的文档。