刷新div而不用ajax重新加载页面

时间:2013-06-01 22:51:32

标签: javascript ajax refresh

我正在使用以下代码刷新包含注释的div,但是有些东西不能正常运行。

60秒后刷新div并在刷新后显示0(每10秒闪烁一次或类似的东西),而不是更新注释列表。我不知道..

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

enter image description here

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);
}

2 个答案:

答案 0 :(得分:0)

问题是xmlHttp.responseText0或是空的。

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

答案 1 :(得分:0)

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

您需要检查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) {
 ...
}