同城约会| 杂志期刊| 小说| 两性论坛| 军事电影| 两性知识| 电脑知识| 汽车| 旅游| 收藏

IT新技术名词:AJAX和SOAP——异步数据和XML获取

来源: 作者:lanyd 出处:综艺读书 2006-05-16 
关 键 词:协议  服务器  xml  vb  soap  

IT新技术名词:AJAX和SOAP——异步数据和XML获取

AJAX:原文Asynchronous Javascript and XML applications,其实就是那些通过javascript来异步取得xml数

据的应用!

我觉得这个缩写最狭隘了,因为我完全可以把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

?g?[器在伺服器送回的?Y料未含XML mime-type?n?^(header)?r出?e
  } 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); //打开连接:请求方式,文件名(基於安全考量,你不能叫用同?W域以

外的?W??。但你应该可以在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技术。

优势:
消除了每次同服务器交互都必须整个页面进行刷新。
更快地同服务器进行交互,部分页面永远比要求服务器返回整个页面的数量流量小很多。


山风(Lanyd)寄语:
其实,不一定非要XMLHTTP,难道说TXT文件就不能通过HTTP来异步访问了?如果有人提供了一个具有XMLHTTP功

能的TXTHTTP对象,我们就可以实现了(只是以前一直没人有这个想法罢了)。其实,目前XMLHTTP就已经支持

TXT,用XMLHTTP.repsponeText就能得到。只不过,XML比TXT的描述统一和标准得多,还是那句话,TXT可以完

全自定义,XML就通用多了:)

更多文章 更多内容请看Ajax的WEB开发  Ajax基础教程  Ajax技术开发专题,或进入讨论组讨论。
收藏此文】【 】【打印】【关闭
相关图文阅读
频道图文推荐
综艺读书宗旨
相关专题
·Ajax技术专题 (365篇文章)
·XML详解 (1370篇文章)
·Ajax技术应用开发 (365篇文章)
·Ajax框架与实例 (158篇文章)
·开发应用 (548篇文章)
·Ajax技术资讯 (62篇文章)
·Ajax基础教程 (68篇文章)
·Ajax的WEB开发 (106篇文章)
·Ajax技术开发 (103篇文章)
热点标签: 协议  服务器  xml  vb  soap  
最新技术文档
站内各频道最新更新文档
站内最新制作专题
热门关键字导读
Photoshop教 程照片处理 照片制作 PS快捷键 抠图
计 算 机 故 障XP系统修复
艺 术 与 设 计设计 流媒体 设计欣赏 边框
计 算 机 安 全ARP
站内频道文章精选
百度推荐,商机无限
搜索您感兴趣的内容
Web 全站
综艺电脑频道编辑信箱  告诉我们您想看的专题或文章

Google

友情互链 | 收藏本站 | 联系我们 | 在线留言 | 京ICP备08008424号|