xmlHttp.open("GET",url,true)参数true和false的具体怎么用?
以前搞简单的ajax,一直用true,没什么问题。昨天搞一个静态页面显示评论的支持/反对 数量,搞到最后一步关键的时候,只能显示最后一条评论的支持/反对 数量后来将true改为false就好了一般的基础教程上说这个参数的意思是异步传输实际中,什么时候用true,什么时候用false呢?
能举实例说明吗?理论概念理解还是比较抽象
以前搞简单的ajax,一直用true,没什么问题。昨天搞一个静态页面显示评论的支持/反对 数量,搞到最后一步关键的时候,只能显示最后一条评论的支持/反对 数量后来将true改为false就好了一般的基础教程上说这个参数的意思是异步传输实际中,什么时候用true,什么时候用false呢?
能举实例说明吗?理论概念理解还是比较抽象
同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕ajax.open方法中,第3个参数是设同步或者异步。prototype等js类库一般都默认为异步,即设为true。先说下同步的情况下,js会等待请求返回,获取status。不需要onreadystatechange事件处理函数。而异步则需要onreadystatechange事件处理,且值为4再正确处理下面的内容。//同步传输模式function RequestByGet(nProducttemp,nCountrytemp)
{
var xmlhttp if (window.XMLHttpRequest)
{
//isIE = false;
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//isIE = true;
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//Web page location.
var URL="http://www.baidu.com/;
xmlhttp.open("GET",URL, false);
//xmlhttp.SetRequestHeader("Content-Type","text/html; charset=Shift_JIS")
xmlhttp.send(null);
var result = xmlhttp.status;
//OK
if(result==200)
{
document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
}
xmlhttp = null;
}//异步传输模式var xmlhttpfunction RequestByGet(nProducttemp,nCountrytemp)
{
if (window.XMLHttpRequest)
{
//isIE = false;
xmlhttp = new XMLHttpRequest();
}
else if (window.ActiveXObject)
{
//isIE = true;
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
//Web page location.
var URL="http://www.baidu.com/";
xmlhttp.open("GET",URL, true);
xmlhttp.onreadystatechange = handleResponse;
//xmlhttp.SetRequestHeader("Content-Type","text/html; charset=UTF-8")
xmlhttp.send(null);
}function handleResponse()
{
if(xmlhttp.readyState == 4 && xmlhttp.status==200)
{
document.getElementById("div_RightBarBody").innerHTML=xmlhttp.responseText;
xmlhttp = null;
}
}
false 同步同步就是要加载完以后才执行后面操作
异步的话会将操作权归还给浏览器对象,客户端后面操作可以继续做,然后服务器做完该请求以后(status==4) 便可以对返回值进行操作