什么是Ajax(缩写:Asynchronous JavaScript and Xm)
异步的,在不刷新刷新整体网页内容的情况下,能自动更新部分网页内容的技术!
- 要说Ajax就不得不说,异步传输和同步传输。
- 异步是值:发送方发出数据后,不等接收方发回响应,接着发送下一个数据包的通讯方式。
- 同步是指:发送方发出数据后,等待接收方发回响应以后才发下一个数据包的通讯方式。
- 也可以理解为:
- 异步传输:你传吧,我去做我的事了,传输完了告诉我一声。
- 同步传输:你现在传输,我要看着你传输完成,才去做别的事。
Ajax的核心是JavaScript对象XmlHttpRequest。
Ajax的缺陷:
Ajax并不是完美的技术,也存在缺陷:- AJAX大量使用了Javascript和AJAX引擎,而这个取决于浏览器的支持。IE5.0及以上、Mozilla1.0、NetScape7及以上版本才支持,Mozilla虽然也支持AJAX,但是提供XMLHttpRequest的方式不一样。所以,使用AJAX的程序必须测试针对各个浏览器的兼容性。
- AJAX更新页面内容的时候并没有刷新整个页面,因此,网页的后退功能是失效的;有的用户还经常搞不清楚现在的数据是旧的还是已经更新过的。这个就需要在明显位置提醒用户“数据已更新”。
XMLHttpRequest对象属性:
- onreadystatechange:状态改变的事件触发器。
- readyState:对象状态:
- 0=未初始化
- 1=读取中
- 2=已读取
- 3=交互中
- 4=完成
- responseText:服务器进程返回数据的文本版本。
- responseXML:服务器进程返回数据的 兼容DOM的Xml文档对象。
- status:服务器返回的状态码,如404=“文件未找到”,200=“成功”。
- statusText:服务器返回的状态文本信息。
function ajax(url, fnSucc, fnFaild)
{
//1.创建Ajax对象
if(window.XMLHttpRequest)
{
var oAjax=new XMLHttpRequest();
}
else
{
var oAjax=new ActiveXObject("Microsoft.XMLHTTP");
}
//2.连接服务器(打开和服务器的连接)
oAjax.open('GET', url, true);
//3.发送
oAjax.send();
//4.接收
oAjax.onreadystatechange=function ()
{
if(oAjax.readyState==4)
{
if(oAjax.status==200)
{
//alert('成功了:'+oAjax.responseText);
fnSucc(oAjax.responseText);
}
else
{
//alert('失败了');
if(fnFaild)
{
fnFaild();
}
}
}
};
}