★XMLHTTP,提交等回应时影响当前页,求解!★

来源:百度知道 编辑:UC知道 时间:2024/05/07 00:25:12
Javascript 创建ActiveXObject XMLHTTP对象后,
使用Send()提交时,会有短暂的回应等待

我做的是聊天室,每秒提交一次
与此同时,还存在Js脚本动画

发现提交后,短暂的等待回应,使得Js脚本动画卡一下
每秒如此,除非本地或内网才没此问题,因为网速问题

我想问,有没有办法可以让Send()的等待回应,不影响Js动画呢?
例如编程中,分个线程来解决。。 但Js没有线程一说

除了iframe 嵌一个页,还有其他办法吗?
iframe会把全页面所有元素提交的,头也变得很大。。 只有另求它法了

xmlHttp.open("GET", url, true);
这里面有第三个参数,一个布尔值,你的肯定是
xmlHttp.open("GET", url, false);
把false换成true就行了,等到xmlHttp有返回结果了在读取数据!
如果false就是等待又返回数据的时候在继续往下走,还没有得到数据的时候就会等到就会卡在那里,true就是不等待,这就是所谓的异步获取数据!

function dologin(){
qq = document.form1.qq.value;
var url = "http://"+location.host+"/__DataPage."+filetype+"?Action=ajaxlogin&qq="+document.form1.qq.value+"&password="+document.form1.password.value+"&rnd=" + Math.random();
loginform.innerHTML = "<blockquote>正在登陆...<br /><img src=\"./images/Loading.gif\" /></blockquote>";
loginstat = 1;
xmlHttp.open("GET", url, true);
xmlHttp.send(null);
//xmlHttp.close;
setTimeout("chklogin()",800);
}

XMLHTTP的请求采用异步方式, 就不存在阻塞主线程的问题了。

异步方式的实现, 请搜索“XMLHTTP 异步”, 很简单