异步概念:
XMLHttpRequest对象把数据传递到服务器地址后 服务器处理,在处理同时可以处理其他事情 可以减少等待时间。如果阻塞或者同步 则必须等待服务器返回响应,假如数据量大 则等待时间特长。
优势:
传统的web请求会将表单数据提交到action地址服务器,但是密码 email 等数据没有必要提交至服务器
Ajax则是按需取数据 这样可以降低服务的压力
Ajax步骤:
获取AJAX的 XMLHttpRequest对象(考虑浏览器兼容性)
Var xhr;
If(window.ActiveXObject){ ---- IE 浏览器
Xhr = new ActiveXObject(“Microsoft.XMLHttp”);
}else if(window.XMLHttpRequest){ ---- 火狐浏览器
Xhr = new XMLHttpRequest()
}
Open() 方法 参数1 请求方式 参数2 请求的url 参数3 是否为异步方式
Var url = “”; // 请求的地址是服务器端
Xhr.open(“GET”,url,true); //打开url
Xhr.onreadystatechange = callback; //见识请求状态
Xhr.send();
Function callback(){ ----- 回调函数
If(xhr.readyState == 4){ ----- 表示请求已经完
If(xhr.status == 200){ --- 表示请求成功
//获取服务器响应的数据
responseText
}
}
}
GET方式请求:
中文转码 encodeURL()
浏览器有缓存 需要在地址栏传递随机数
POST方式请求:
一定要设置xhr.setRequestHeader
发送的数据通过send()方法发送过去 通常使用POST方式
Json_encode() 可以将数组转化成字符串
eval()将获取到的内容转化成json格式
服务器给浏览器返回的数据格式:
普通文本:
直接 echo
字符串;
Echo
服务器端 echo $str
客户端 responseText
Json格式数据
服务器:Json_encode()
客户端:responseText 使用时候 eval()
XML格式数据:
返回数据前需要通过header()函数声明 回应数据的格式
谁调用header()函数 就放在这个函数的开始
客户端接收的时候应用 xhr.responseXML