【发布时间】:2013-07-06 14:33:02
【问题描述】:
我正在尝试做一个聊天应用程序,所以我需要它来始终接收服务器信息。因此,当请求完成时,在:
http.onreadystatechange=function(){
我再次调用了该函数,所以:
request();
然后一切都在循环中发生。问题是它只在谷歌浏览器中工作。 explorer 和 firefox,不要等到get.onreadystatechange=function(),然后继续调用 return() 就像每秒 100 次一样,无缘无故 :(
function request()
{
var get;
if (window.XMLHttpRequest)
{
get = new XMLHttpRequest();
}
document.getElementById("request_status").innerHTML = "requests: "+requests;
get.onreadystatechange=function()
{
if (get.readyState==4 && get.status==200)
{
requests+=1;
request();
}
}
get.open("GET","request.php",true);
get.send();
}
在谷歌浏览器中,“请求”每秒增长 4 个。在 explorer 和 firefox 中,它们每秒增长 200 个,所以出了点问题!
【问题讨论】:
-
查看开发人员工具中的“网络”选项卡。你得到缓存的结果了吗?
-
+1 用于缓存。我创建了一个 jsFiddle,jsfiddle.net/UkYBG/4 在 IE 中,如果有 302 个响应,
requests的增长速度非常快
标签: javascript http google-chrome firefox xmlhttprequest