AJAX和SOAP——异步数据和XML获取
来源:互联网 发布:手机能windows系统吗 编辑:程序博客网 时间:2024/04/30 06:48
我觉得这个缩写最狭隘了,因为我完全可以把JS换成VBS嘛,那不就可以缩写成AVAX了?!
从这点上说,远不如SOAP,它的原文应该是Simple Object Access Protocol,简单对象访问协议(汗哪,我也不敢确认呢。其实使用的对象和技术就是XMLHTTP)。它就标准和广义多了,指的是所有通过客户端SCRIPT来异步取得XML数据的应用,自然包括JS、VBS或其它脚本了。
给个小例子:
<script type="text/javascript">
<!--
function ajaxRead(file){
var xmlObj = null;
if(window.XMLHttpRequest){ //如果浏览器直接支持window.XMLHttpRequest对象
xmlObj = new XMLHttpRequest();
if (xmlObj.overrideMimeType) {xmlObj.overrideMimeType('text/xml');}//防止有些版本的Mozilla
瀏覽器在伺服器送回的資料未含XML mime-type檔頭(header)時出錯
} else if(window.ActiveXObject){ //如果浏览器支持window.ActiveXObject对象
try {
xmlObj = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xmlObj = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
} else {
return; //浏览器啥都不支持,我也只有啥都不干了:p
}
if (!xmlObj) {
alert('Giving up :( Cannot create an XMLHTTP instance');
return;
}
xmlObj.onreadystatechange = function(){ //当xmlobj在异步执行方式下状态发生变化时触发本事件
if(xmlObj.readyState == 4){
if (xmlObj.status == 200) { //HTTP状态码,未出错。可参考.statusText
document.getElementById('xmlObj').firstChild.data =
xmlObj.responseXML.getElementsByTagName('data')[0].firstChild.data; //document.getElementById
('xmlObj')的.firstChild.data也可换成.innerHTML
} else {
alert('There was a problem with the request.');
return;
}
}
}
xmlObj.open ('GET', file, true); //打开连接:请求方式,文件名(基於安全考量,你不能叫用同網域以
外的網頁。但你应该可以在IE的internet选项里放开吧),异步/同步
xmlObj.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); //如果.open以POST
方式打开
xmlObj.send (''); //必须执行此指令,否则XMLHttpRequest对象的状态不会变为4!
}
//-->
</script>
注:
XMLHttpRequest对象的状态总共有五个状态,由0走到4。
0 – 尚未初始化(在这个XMLHttpRequest开始前)
1 – 加载(XMLHttpRequest初始化一结束)
2 – 加载结束(XMLHttpRequest一从服务器上获得一个回应)
3 – 交互(当XMLHttpRequest对象和服务器连接中)
4 – 结束(当XMLHttpRequest被告知它已经完成了所有人物并结束运行)
IE5以上支持~~
除了XMLHTTP对象外,还涉及CSS和DOM技术。
优势:
消除了每次同服务器交互都必须整个页面进行刷新。
更快地同服务器进行交互,部分页面永远比要求服务器返回整个页面的数量流量小很多。
其实,不一定非要XMLHTTP,难道说TXT文件就不能通过HTTP来异步访问了?如果有人提供了一个具有XMLHTTP功能的TXTHTTP对象,我们就可以实现了(只是以前一直没人有这个想法罢了)。其实,目前XMLHTTP就已经支持TXT,用XMLHTTP.repsponeText就能得到。只不过,XML比TXT的描述统一和标准得多,还是那句话,TXT可以完全自定义,XML就通用多了:)
另附:
XmlHttp是什么?
最通用的定义为:XmlHttp是一套可以在Javascript、VbScript、Jscript等脚本语言中通过http协议传送或从接收XML及其他数据的一套APIXmlHttp最大的用处是可以更新网页的部分内容而不需要刷新整个页面。
来自MSDN的解释:XmlHttp提供客户端同http服务器通讯的协议。客户端可以通过XmlHttp对象(MSXML2.XMLHTTP.3.0)向http服务器发送请求并使用微软XML文档对象模型Microsoft? XML Document Object Model (DOM)处理回应。
现在的绝对多数浏览器都增加了对XmlHttp的支持,IE中使用ActiveXObject方式创建XmlHttp对象,其他浏览器如:Firefox、Opera等通过window.XMLHttpRequest来创建xmlhttp对象。
- AJAX和SOAP——异步数据和XML获取
- AJAX和SOAP——异步数据和XML获取
- IT新技术名词:AJAX和SOAP——异步数据和XML获取
- AJAX (异步 JavaScript 和 XML)
- AJAX--异步JavaScript和xml
- 如何使用jquery和ajax异步获取后台中的数据
- ajax异步获取数据
- AJAX异步JavaScript和XML 基本
- ajax 异步的javascript和xml
- 异步的JavaScript 和 XML等于ajax
- Ajax(异步 JavaScript 和 XML)
- XML 加密和 SOAP
- MVC—实现ajax+mvc异步获取数据
- .Net的精髓——XML和SOAP
- .Net的精髓——XML和SOAP
- .Net的精髓——XML和SOAP
- .NET的精髓——XML和SOAP
- [Ajax]异步的 JavaScript 和 XML:Ajax入门教程(整理)
- 《C++编程规范》笔记(设计风格)
- 从WEB2.0身上,我看到了什么?
- 学习的第二步:不求远虑
- 打开ATL调试开关
- 一般环境变量的设置
- AJAX和SOAP——异步数据和XML获取
- 《代码大全》解读(二)
- ECLIPSE 3.1 和 CVSNT 2.5 的配置图文教程
- 学习的第三步:广阔的信息渠道
- 本控制系統是程序開發中存放各種修訂版本的地方。基本上它們是非常簡單的系統。不幸的是,在這幾年,人們對版本控制的各個組件使用了各種各樣不同的名稱,這使得情況越趨混亂。因此,我們首先爲將要使用的一些組件進行定義。
- 看了几个小时的 ajax Thing
- 学习的第四步:学会谦卑
- 学习的第五步:交流才是进步的大路
- 南北员工对待工作的差异