ajax async异步请求和同步请求

ajax是指异步加载。这个异步是相对于页面来说的,页面不刷新就加载服务器数据。ajax中的请求又分为同步请求和异步请求,这里是相对于进程来说的,ajax异步请求,发送请求了不用等服务器响应,页面其他的地方还能点,其他的函数也能执行。可是我们有时候也需要使用ajax同步请求,要求服务器没响应前,页面其他函数不能执行。下面分别来看如何实现。

异步Async=true

当使用 async=true 时,处理服务器返回的方法要在onreadystatechange中执行:

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",true);
xmlhttp.send();

alert("我先执行,不用等你请求服务器完成,没有任何阻碍");

同步Async=false

如需使用 async=false,请将 open() 方法中的第三个参数改为 false:

xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","ajax_info.txt",false);
xmlhttp.send();

alert("我慢执行,我要等你的ajax全部搞完,回调函数执行完了才轮到我");