我正在尝试制作一个聊天应用程序,因此我需要它始终接收服务器信息。因此,当请求完成时,在:
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();
}
在 google chrome 中,“请求”每秒增长 4 个。在 explorer 和 firefox 中,它们每秒增长 200,所以出了问题!
我无法检查资源管理器,但当我在这个 fiddle 中执行此操作时,Firefox 适用于您的示例:http://jsfiddle.net/ZHdgb/1/
虽然它似乎对我有用,但也许尝试发出这些同步请求,这样一次只触发一个。见下文:
Thay đổi
get.open("GET","request.php",true);
致:
get.open("GET","request.php",false);
Tôi là một lập trình viên xuất sắc, rất giỏi!