1. ajax是介于客户端与服务器端之间的一个机制,但这一机制是在前台的,利用前台的闲置功能,来进行前台与后台的数据交流,以达到增强用户体检,减少服务器压力,更有效的利用带宽的效果。
2. ajax是采用异步交互的机制。
3. ajax使用于页面局部刷新,按需求验证和取数据。
4. ajax缺点便是浏览器的兼容问题麻烦,与嵌入式移动端对ajax的支持不太理想。
5.ajax已经是一种web开发必备的技术,而且其优点远大于缺点。
6.ajax涉及到的主要技术有7种其中Javascript、XMLHttpRequest、DOM、XML为重点。
7. XMLHttpRequest对象
XMLHttpRequest是XMLHTTP组件的对象,通过这个对象,AJAX可以像桌面应用程序
一样只同服务器进行 数据层面的交换,而不用每次都刷新界面,也不用每次将数据处
理的工作都交给服务器来做;这样既减轻 了服务器负担又加快了响应速度、缩短了用
户等待的时间。
Javascript
Javascript一直被定位为客户端的脚本语言,应用最多的地方是表单数据的校验。现在
可以通过Javascript 操作XMLHttpRequest,来跟数据库打交道。
DOM
DOM(Document Object Model)是提供给HTML和XML使用的一组API,提供了文件的
表述结构,并可以利用它改变其中的内容和可见物。脚本语言通过DOM才可以跟页面进
行交互。Web开发人员可操作及建立文件的属性、方法以及事件都以对象来展现。比如,
document就代表页面对象本身。
XML
通过XML(Extensible Markup Language),可以规范的定义结构化数据,是网上传输的
数据和文档符合统一的标准。用XML表述的数据和文档,可以很容易的让所有程序共享。
考虑兼容性:
1.浏览器分为IE与非IE,其中非IE是遵循W3C标准的,创建方式基本相同,而IE不一样,其每个版本创建的方式也有所不同。
2.创建ajax
</pre><pre name="code" class="PHP"><script> function createAjax(){ var request=false; //window对象中有XMLHttpRequest存在就是非IE,包括(IE7,IE8) if(window.XMLHttpRequest){ request=new XMLHttpRequest(); 有些浏览器是需要覆盖eMimeType if(request.overrideMimeType){ request.overrideMimeType("text/xml");//指定文本类型 } //window对象中有ActiveXObject属性存在就是IE }else if(window.ActiveXObject){ //将IE各个版本的浏览器的参数放在一个数组里面 var versions=['Microsoft.XMLHTTP','MSXML.XMLHTTP','Msxml2.XMLHTTP.7.0','Msxml2.XMLHTTP.6.0','Msxml2.XMLHTTP.5.0','Msxml2.XMLHTT4.0','MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP']; //遍历这个数组,确定是那个版本,进行对应AJAX的创建 for(var i=0; i<versions.length; i++) { try{ request=new ActiveXObject(versions[i]); if(request){return request;} }catch(e){ request=false; } } } return request; } var ajax=createAjax();//创建AJAX alert(ajax);测试 </script>
1. XMLHttpRequest对象的属性:
onreadystatechange状态改变的事件触发器
readyState 对象状态(integer):
0 = 未初始化 1 = 读取中 2 = 已读取 3 = 交互中 4 = 完成
responseText 服务器进程返回数据的文本版本
responseXML 服务器进程返回数据的兼容DOM的XML文档对象
status 服务器返回的状态码,如:404 = "文件未找到" 、200 ="成功"
statusText 服务器返回的状态文本信息
2. XMLHttpRequest对象的方法:
abort()停止当前请求 getAllResponseHeaders()作为字符串返回完整的headers getResponseHeader("headerLabel")作为字符串返回单个的header标签 open("method","URL"[,asyncFlag[,"userName"[,"password"]]])设置未决的请求的目标 URL,方法,和其他参数 send(content) 发送请求 setRequestHeader("label","value")设置header并和请求一起发送