xmlHttp.open("GET",url,true)参数true和false的具体怎么用?
以前搞简单的ajax,一直用true,没什么问题。昨天搞一个静态页面显示评论的支持/反对 数量,搞到最后一步关键的时候,只能显示最后一条评论的支持/反对 数量后来将true改为false就好了一般的基础教程上说这个参数的意思是异步传输实际中,什么时候用true,什么时候用false呢?
能举实例说明吗?理论概念理解还是比较抽象

解决方案 »

  1.   

    第三个参数设置请求是否为异步模式。如果是TRUE,JavaScript函数将继续执行,而不等待服务器响应。这就是"AJAX"中的"A"。同步与异步:举个例子:普通B/S模式(同步)AJAX技术(异步)
    同步:提交请求->等待服务器处理->处理完毕返回 这个期间客户端浏览器不能干任何事
    异步: 请求通过事件触发->服务器处理(这是浏览器仍然可以作其他事情)->处理完毕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;
     }
    }
      

  2.   

    true 异步
    false 同步同步就是要加载完以后才执行后面操作
    异步的话会将操作权归还给浏览器对象,客户端后面操作可以继续做,然后服务器做完该请求以后(status==4) 便可以对返回值进行操作