解决问题:
在非异步网站中,当用户进行请求时,只有当服务器响应后,页面重新绘制,用户才能继续操作,其交互性及用户体验极差
Ajax(异步请求):
在进行请求之后不用等待服务器的响应,可以继续后续的操作,有很好的用户体验
Ajax对象:XMLHttpRequest
由于不同的浏览器声明该对象的方法式不一样,so,在声明时需要做些处理
现在浏览器主要分为IE和非IE浏览器
so:
var xmlHttp = false;
try {
xmlHttp = new ActiveXObject("MSEMl2.XMLHTTP");
//alert('1.2');
}
catch (e) {
try {
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
//alert('Microsoft');
}
catch (e) {
xmlHttp = false;
}
}
if (!xmlHttp && typeof (XMLHttpRequest) != 'undefined') {
xmlHttp = new XMLHttpRequest();
//alert('Other');
}
open():建立到服务器的新请求。
send():向服务器发送请求。
abort():退出当前请求。
readyState:提供当前HTML的就绪状态。
responseText:服务器响应的返回文本。
onreadstatechange:后面跟上函数方法的名称,当HTTP状态改变时,执行该方法。
Ajax的沙箱模式:
这是一个不可跨域模式,如:该脚本在www.AAA.com上,那么就只能想这个服务器发送请求。
HTTP的5中状态:
1:请求已经建立但还没有发出(调用send()之前)。
2:请求已经发出正在处理。
3:服务器已处理相应,但还未完成。
4:响应已完成,并且可以使用。
服务器端的响应:
服务器端的响应分为:返回客户期望数据和未返回客户期望的数据
未返回客户的期望数据的情况:
403:访问的数据受保护
401:禁止访问
返回期望数据的情况:
200:表示一切顺利
SO,处理响应应为:
function update()
{
if(xmlHttp.readyState==4&&xmlHttp.status==200)
{
alter("AAAA");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。