黑马程序员技术交流社区
标题:
自己的面试经历中ajax问的是比较多的,下面总结一下
[打印本页]
作者:
王文辉
时间:
2015-7-2 10:56
标题:
自己的面试经历中ajax问的是比较多的,下面总结一下
Ajax是一种不刷新整个页面便可与服务器通信的技术。
1,原理:在页面显示时,利用JS代码,在页面和服务器之间构建了一个中间媒介:Ajax引擎,它允许页面异步的动态的向服务器发送请求,然后接受响
应更新页面
2,应用场景:百度搜索框,谷歌地图,即时有效性验证
3,Ajax包含的技术
Ajax是多种技术的组合:Javascript,XHTML,CSS,DOM,XML和XMLHttpRequest
XML:用来携带信息
XHTML,CSS:用来标准化显示结果
DOM:实现动态显示和交互
XMLHttpRequest:异步数据读取
Javascript:总指挥,绑定的处理所有数据
4,XMLHttpRequest
1,创建方式不相同但使用方式相同
function createXmlHttpRequest(){
var xmlHttp;
try{ //Firefox, Opera 8.0+, Safari
s xmlHttp=new XMLHttpRequest();
}catch (e){
try{ //Internet Explorer
xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
}catch (e){
try{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}catch (e){}
}
}
return xmlHttp;
}
2,可像桌面应用程序一样只进行数据层面的交互
3,XMLHttpRequest的方法
1,abort() 停止当前请求
2,getAllResponseHeaders
3,getResponseHeader("name");
4,open("method","url",isAsync)
1,为了避免缓存带来的影响,在url后面拼接当前日期字符串实现每次请求的不同
2,若单纯的只是想请求服务器数据时,使用method=GET,这时send(data)无效,并不能发送data,
不过可以在url携带一些参数
当method=POST时,需要设置Content-type=application/x-www-form-urlencoded
,以告知服务器请求数据已使用URL编码
5,send(data)
6,setRequestHeader(name,value);
4,XMLHttpRequest的属性
1,onreadystatechange 状态改变的事件触发器,当赋值为一个函数时,每当XMLHttpRequest对象状态发生改变,就调用一次该函数
此触发器由服务器通过改变readyState的值来触发
2,readyState 对象状态,当此值发生改变时,就执行onreadystatechange注册的函数
0 :未初始化,未调用open方法
1 :正在加载,open已调用,send 未调用
2 :send以调用,请求开始
3 :代表交互中,服务器正在发送响应
4 :代表响应完成
3,responseText 文本方式的响应内容
4,responseXML 把响应内容包装成XML 的DOM 对象
只有响应头包含text/xml时才可以使用
5,status 响应状态码,status标识响应状态,readyState标识请求状态
6,statusText 响应状态文本信息
5,开发步骤
有固定的步骤,利用XMLHttpRequest的方法和属性控制程序逻辑
1,创建XMLHttpRequest对象
2,注册onreadystatechange 的事件处理函数
3,open 打开到服务器的连接
4,send 发送数据
5,XMLHttpRequest 的一些属性会被服务器修改
readyState status reqponseText respnseXML
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2