|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
想法是和程序员的想法不一样的.至于为什么.大家去想一想.跟心理学有关的IE经由过程同意开辟职员在Web页面外部利用平安的ActiveX组件扩大本身的功效。微软在无形态毗连方面的产物是XMLHTTP组件。
利用XMLHTTP组件,开辟职员能够不必从以后的Web页面导航而间接传输数据到服务器上大概从服务器取数据。这个功效是主要的,由于它匡助削减了无形态毗连的疾苦。它还能够扫除下载冗余HTML的必要,从而进步历程的速率。
Mozilla做出的回应是创立它本人的承继XML代办署理类:XMLHttpRequest类。关于年夜多半情形,XMLHttpRequest工具的举动很像XMLHTTP组件。这就意味着你可使用良多与XMLHTTP组件不异的匡助信息。办法和属性相似,但是,一切的办法和属性都是以小写字母开首,而且另有一些属性不撑持。
上面是一个利用eXtensibleBindingLanguage(XBL)将一个举动绑定到一个<INPUT>元从来更新XML数据岛的复杂例子。数据被发送到服务器处置。
xml_http.asp:
<%@Language=VBScript%>
<%
Response.Expires=-1
IfRequest("action")="update"Then
Dimxml
Setxml=Server.CreateObject("MSXML2.DOMDocument")
xml.loadRequest
Response.Writexml.xml
Setxml=Nothing
Response.End
EndIf
%>
<html>
<head>
<style>
.linkedData{
-moz-binding:url(link_data.xml#link);
}
</style>
<scriptlanguage="JavaScript">
<!--
functiontest(){
varxml=document.getElementById("xmlData");
if(xml!=null){
varxmlhttp=newXMLHttpRequest();
xmlhttp.open("POST","xml_http.asp?action=update",false);
xmlhttp.send(xml.innerHTML);
alert(xmlhttp.responseText);
}
}
//-->
</script>
</head>
<body>
<xmlid="xmlData"name="xmlData"style="visibility:hidden;">
<root>
<link_data/>
</root>
</xml>
<formid="thisForm"name="thisForm">
<inputtype="text"class="linkedData"name="txtLink"id="txtLink"size="25">
<br>
<inputtype="button"value="Test">
</form>
</body>
</html>
link_data.xml:
<?xmlversion="1.0"?>
<xbl:bindingsxmlns:xbl="http://www.mozilla.org/xbl">
<xbl:bindingid="link">
<xbl:handlers>
<xbl:handlerevent="change">
varxml=document.getElementById("xmlData");
varroot=xml.childNodes[1];
varlink_data=root.childNodes[1];
link_data.childNodes[0].nodeValue=event.originalTarget.value;
</xbl:handler>
</xbl:handlers>
</xbl:binding>
</xbl:bindings>
xml_http.asp文件创立一个XML数据岛,创立的数据岛有一个主要节点:link_data。并且,这个HTML的体现会创立一个文本框和一个用于创立发送XML数据给服务器的事务的按钮。
IE同意你嵌进XML数据岛并利用谁人数据岛将绑定HTML元素究竟层的数据。Mozilla靠XBL为每一个元素创立举动。利用XBL,你能够为<INPUT>元素创立一个举动,以是在onChange事务产生时,“bound”XML节点就可以够被更新。“linkedData”款式类关照Mozilla文件link_data.xml将要被用来创立绑定。这个类是在<INPUTTYPE=”text”…>元素中利用的。
假如你剖析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组件的文档。
问题是他们究竟是喜欢他们是使用软件时,速度快还是速度慢好.(当然在3秒以内).无论是他们输入资料时,查找资料时,分析资料时. |
|