AJAX回调超级慢?

时间:2015-02-04 23:44:43

标签: javascript ajax

我正在尝试使用AJAX并成功部署了一个简单的AJAX A-synced函数,但是当我改变它以使用回调方法时 - 突然,它需要很长时间才能加载(大约10 - 15分钟......)。 这是立即执行的功能:

function ajaxf() {
var xmlhttp;
  xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=function() {
  if (xmlhttp.readyState==4 && xmlhttp.status==200 && document.getElementById("icons")==null)
    {
    document.getElementById("text-12").innerHTML=xmlhttp.responseText;
    }
  }
  xmlhttp.open("GET","http://some-url/ajax.php",true);
  xmlhttp.send();
} 

这里使用回调函数进行慢点迭代:

function ajaxf(url,cfunc) {

  xmlhttp=new XMLHttpRequest();
  xmlhttp.onreadystatechange=cfunc;
  xmlhttp.open("GET",url,true);
  xmlhttp.send();
}
document.body.onscroll = function ajaxb() {
  ajaxf("http://some-url/ajax.php",function()
  {
  if (xmlhttp.readyState==4 && xmlhttp.status==200 && document.getElementById("icons")==null)
    {
    document.getElementById("text-4").innerHTML=xmlhttp.responseText;
    }
  });
} 

其他(也许)相关细节--ajax.php文件仅重532 B,在我的本地测试服务器上运行或多或少相同,第一个函数使用onscroll =" ajaxf()&#34 ;在身体标签内......

我的印象是AJAX会更加活泼???

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,感谢@ jasen的提示我已经放了一个console.log()并且能够看到滚动功能像@jfriend00所说的那样频繁了很多次。 最初,我认为通过放置" document.getElementById(" icons")== null "作为一个条件 - 该函数只会触发一次,但我当然错了,

所以解决方案是/是: 通过添加" document.body.onscroll = null; "在第一次执行后重置onscroll操作。在功能结束时。