-1

我正在使用下面的代码来刷新包含评论的 div,但是有些东西不能正常工作。

60 秒后刷新 div,刷新后显示 0(每 10 秒左右闪烁或类似的东西),而不是更新评论列表。我不知道..

检查源页面没有发现任何错误,没有错误。

在此处输入图像描述

function ajax_com(){
  var xmlHttp;
  try{   
    xmlHttp=new XMLHttpRequest();
  }catch (e){
    try{
        xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); 
    }catch (e){
        try{
            xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
        }catch (e){
            alert("No AJAX!?");
            return false;
        }
    }
  }
  xmlHttp.onreadystatechange=function(){
    document.getElementById("tble").innerHTML=xmlHttp.responseText;
    setTimeout('ajax_com()',60000);
  }
  var data = "action=ajax_com";
  xmlHttp.open("POST","http://wwwsite.com/wp-admin/admin-ajax.php",true);
  xmlHttp.send(data);
}
window.onload=function(){
  setTimeout('ajax_com()',60000);
}
4

2 回答 2

0

您对onreadystatechange这种方法的使用是在多个状态更改时触发的。

您需要检查属性的第 4 个状态,即完成状态,如下所示:xmlHttp.readyState

xmlHttp.onreadystatechange=function(){
  if (xmlHttp.readyState === 4) {
    document.getElementById("tble").innerHTML=xmlHttp.responseText;
    setTimeout('ajax_com()',60000);
  }
}

您可能还想检查xmlHttp.status它是否为 200,如下所示:

if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
 ...
}
于 2013-06-01T23:26:34.560 回答
0

问题是xmlHttp.responseText或者0是空的。

您的 ajax 没有返回任何数据,或者是吗?尝试使用Firebug它来查看它是否真的返回任何数据。此外,返回的数据可能是结构化的,因此您必须解析响应数据并相应地显示具有不同属性的评论,如海报名称、图片、实际评论等。

于 2013-06-01T23:15:41.853 回答