AJAX.docx
《AJAX.docx》由会员分享,可在线阅读,更多相关《AJAX.docx(10页珍藏版)》请在冰豆网上搜索。
![AJAX.docx](https://file1.bdocx.com/fileroot1/2022-12/6/65bb5de6-cf5c-4e2a-915e-3da8f7fedd3c/65bb5de6-cf5c-4e2a-915e-3da8f7fedd3c1.gif)
AJAX
AJAX是什么
AJAX是一个比较莫名的缩写单词:
AsynchronousJavaScript+XML。
什么叫做异步的JavaScript加上XML呀。
在初步的浏览之后,我相信,AJAX这个名字之所以能够如此风行,完全是因为那只世界闻名的荷兰球队②。
JesseJamesGarrett的贡献的伟大之处就在于,他想方设法的搞出了这么一个缩写,使得一些大家早就在使用的老技术,变得重新流行起来,热门起来,新鲜起来。
在Garrett的总结中,AJAX包含以下五个部分:
基于标准的表示技术,使用XHTML与CSS
动态显示和交互技术,使用DocumentObjectModel(文档对象模型)
数据互换和操作技术,使用XML与XSLT异步数据获取技术,
使用XMLHttpRequest
而JavaScript将以上的一切都结合在一起
ajax的优势
1、不需要插件支持
2、优秀的用户体验
3、提高web程序的性能
4、减轻服务器的带宽的负担
Ajax的不足
1、浏览器对ajax的支持度不够
2、破坏浏览器的前进、后退按钮的正常功能
3、对搜索引擎的支持度不足
4、开发调试工具缺乏
对象状态
Readystate
状态
解释
0
未初始化
对象已经创建,但尚未调用open
1
已经初始化
调用open方法以后
2
发送数据
调用send方法以后
3
数据传输中
在已经接收到部分数据但桑为接收完成
4
完成
数据全部接收完成
事件:
每当readystate的值发生改变是,产生一个事件
事件处理的函数句柄:
我们可以选择在事件产生以后,如何处理。
这个处理的函数,我们须告诉这个XMLHttpRequest对象。
这里借用了C语言中的函数句柄的概念。
将这个函数的句柄,在JavaScript中也就是这个函数的名称,赋值给XMLHttpRequest对象中的onreadystatechange,就可以了。
(注:
这里其实是创建了一个匿名的函数,onreadystatechange只是属性名称,而不是函数名称。
函数在JavaScript中是第一等的对象,可以赋值给任何变量。
)
responseText将响应信息作为字符串返回
responseXML将响应信息格式化为XMLDOM对象并返回
responseBody将响应信息以unsignedbyte数组的形式返回
responseStream将响应信息以IStream对象的形式返回
varxmldom=xmlHttp.responseXML;
varchannel=xmldom.documentElement.childNodes.item(0);
varitemlist=channel.childNodes;
for(vari=0;ivarnode=itemlist.item(i);
if(node.tagName=="title"){
blogtitle.innerHTML=node.text;
}
if(node.tagName=="link"){
bloglink.href=node.text;
}
if(node.tagName=="description"){
blogdescription.innerHTML=node.text;
}
if(node.tagName=="managingEditor"){
managingEditor.innerHTML=node.text;
}
if(node.tagName=="item"){
bloglist[bloglist.length]=node.childNodes;
}
}
showitem(bloglist[0]);
}
}
xmlHttp.send(null);
}
functionshowitem(itemlist){
for(vari=0;ivarnode=itemlist.item(i);
if(node.tagName=="title"){
itemtitle.innerHTML=node.text;
}
if(node.tagName=="link"){
itemlink.href=node.text;
}
if(node.tagName=="description"){
description.innerHTML=node.text;
}
if(node.tagName=="author"){
author.innerHTML=node.text;
}
if(node.tagName=="pubDate"){
pubDate.innerHTML=node.text;
}
}
}
XMLHTTP是一个纯粹的JavaScript对象,这样的交互过程,是在后台进行的
可以不被用户察觉的。
因此,XMLHTTP实际上已经突破了原有的JavaScript
安全限制。
http请求的方式get、post、head、putdelete、options、trace
jquery中的ajax
引入示例
Get方法
Post方法
请求方式不同获取方式也不相同
$.getScript()方法和$getJson方法
$.ajax()方法
序列化元素