[autonomic learning] Ajax
-
def(定义):客户端与服务器端异步的通信的技术
-
原理:
第一步:创建XMLHttpRequest 对象,xmlhttp=new XMLHttpRequest();(它有兼容性问题,在IE中用的是new ActiveXObject)
第二步:向服务器发送请求(GET/POST)
xmlhttp.open('POST',url,true);//异步的
//xmlhttp.setRequestHeader("Content-type","application/x-wwwform-urlencoded");//POST时要加这句话
xmlhttp.send();
第三步:执行回调,在回调函数中进行相应的操作
xmlhttp.onreadystatechange=function() {
if (xmlhttp.readyState==4 && xmlhttp.status==200){
//就可以执行相应的操作
document.getElementById("myDiv").innerHTML=xmlhttp.responseText; } }
-
readyState的5个值及status的常见状态码
0: 请求未初始化 1: 服务器连接已建立 2: 请求已接收 3: 请求处理中 4: 请求已完成,且响应已就
200 服务器成功返回 301 永久重定向 302 临时重定向 404 资源找不到 500 服务器错误 304 缓存 -
Ajax优缺点
优点:无刷新更新数据;异步与服务器通信;界面与应用分离;减少冗余请求和响应对服务器造成的负担…
缺点:违背URL和资源定位的初衷 ;安全问题;干掉back/history功能,破坏浏览器机制;太多客户端代码造成开发上的成本