IT新技术名词:AJAX和SOAP——异步数据和XML获取
来源: 作者:lanyd 出处:综艺读书 2006-05-16AJAX:原文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程序,陶醉中
·XML详解 (1370篇文章)
·Ajax技术应用开发 (365篇文章)
·Ajax框架与实例 (158篇文章)
·开发应用 (548篇文章)
·Ajax技术资讯 (62篇文章)
·Ajax基础教程 (68篇文章)
·Ajax的WEB开发 (106篇文章)
·Ajax技术开发 (103篇文章)
·.Net环境下基于Ajax的MVC方案 (0次浏览)
·Ajax技术安全问题不容忽视 关注潜在缺陷及性 (0次浏览)
·警告!Ajax技术的安全问题不容忽视 (0次浏览)
·关于Xdoclet生成hibernate映射文件 (123次浏览)
·XMLHTTP对象封装技术 (65次浏览)
·面向.NET开发人员的Ajax技术平台 (31次浏览)
·.Net环境下基于Ajax的MVC方案 (0次浏览)
·Ajax技术安全问题不容忽视 关注潜在缺陷及性 (0次浏览)
·警告!Ajax技术的安全问题不容忽视 (0次浏览)
·Ajax技术安全问题不容忽视 关注潜在缺陷及性能问 06-19
·警告!Ajax技术的安全问题不容忽视 06-15
·面向.NET开发人员的Ajax技术平台 06-01
·使用Axis开发Web Service程序 04-13
·XMLHTTP对象封装技术 04-10
·关于Xdoclet生成hibernate映射文件 04-09
·使用WebService 和RMI远程协作 04-07
·Ajax简介 03-30
·用事实说话!AJAX应用程序开发七宗罪 03-17
|
|||
| ·ACDSEE专题教程-下载使用 ·迅雷专题教程-下载使用 ·Windows XP频道 ·Windows Vista频道 ·Windows 2000频道 ·win2003频道 ·Freebsd频道 ·Oracle频道 |
·Linux频道 ·Windows频道 ·邮件服务器专题 ·协议大全 ·数据恢复指南教程 ·FreeBSD使用教程 ·Linux数据库宝典 ·Linux基础知识 |
||
| · 秘密:Vista隐蔽的动态屏保 · 腾讯开发新电子宠物--QQ熊 · 惠普否认2999元PC有价无货 |
· 驱逐Win系统“流氓”文件 · WinXP中获取未使用的IP地址 · 尝试format C:格式化硬盘? |
| · 在DOS下恢复回收站中的文件 · 拯救WinXP崩溃的救命稻草 · Linux系统中超级权限的应用 |
· 搜狗PK谷歌:谁能代言拼... · 昨日重现,一键GHOST轻松.. · 实现Web迅雷在空闲时杀毒 |
| · AVIFile函数制做AVI文件 · VC中链接动态链接库的方法 · 熊猫烧香核心源码(Delphi) |
· DateDiff函数祥解 · JavaScript去除空格的三种 · js效果 图片加载进度实时.. |
| · SQL Server数据库优化方案 · Oracle的初学者入门心得 · JSP连接Mysql数据库 |
· Photoshop为美女做艺术处理 · 用Freehand创建发光字特效 · 设计自己的个性QQ动态表情 |




