简介
Ajax,是 Asynchronous JavaScript + XML 的简写。指一种创建交互式网页应用的网页开发的技术。
通过异步模式,提升了用户体验。优化了浏览器和服务器之间的传输,减少不必要的数据往返,减少了带宽占用。Ajax引擎在客户端运行,承担了一部分本来由服务器承担的工作,从而减少了大量用户下的服务器负载。
Ajax最大的特点就是局部刷新。
Ajax 技术核心是 XMLHttpRequest 对象(简称 XHR)
是指一种创建交互式网页应用的网页开发技术
AJAX 可以使网页实现异步更新
可以调用xml、json、php等外部数据
没有平台限制**
创建Ajax对象
new XMLHttpRequest();
new ActiveXObject(‘Microsoft.XMLHTTP’) //IE6
open()
xhr.open(‘get’, ‘demo.php’, true); //对于 demo.php 的 get 请求,false 同步
三个参数: 要发送的请求类型 (get 、post)、请求的 URL 和表示是否异步
Post:xhr.setRequestHeader(“Content-type”, “application/x-www-form-urlencoded”); xhr.send(data);
发送请求 send()
接收服务器返回的信息 onreadystatechange
readyState
0 请求未初始化 1 服务器连接己建立
2 请求已接收 3 处理请求,响应中
4 响应就绪
status HTTP 状态码
常见状态码
200 - 请求成功
301 -Moved Permanently 资源(网页等)被永久转移到其它URL
304 -Not Modified 使用缓存文档
404 - 请求的资源(网页等)不存在
500 - 内部服务器错误
状态码分类
1信息,服务器收到请求,需要请求者继续执行操作 2成功,操作被成功接收并处理
3重定向,需要进一步的操作以完成请求 4客户端错误,请求包含语法错误或无法完成请求
5服务器错误,服务器在处理请求的过程中发生了错误
封装ajax
function ajax(obj){var str = "";for(var i in obj.data){str+=i+"="+obj.data[i]+"&";}str = str.replace(/&$/,"");if(window.XMLHttpRequest){var xhr = new XMLHttpRequest();}else{var xhr = new ActiveXObject("Microsoft.XMLHTTP");}if(obj.type.toUpperCase()==="GET"){if(str==""){xhr.open("GET",obj.url,true);}else{xhr.open("GET",obj.url+"?"+str,true);}xhr.send();}if(obj.type.toUpperCase()==="POST"){xhr.open("POST",obj.url,true);xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");xhr.send(str);}xhr.onreadystatechange = function(){if(xhr.readyState==4){if(xhr.status==200){var data = xhr.responseText;obj.cb(data);}}}}
