-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

問題はxmlHttp.responseText0です。

あなたのajaxはデータを返していませんか?Firebug実際にデータが返されるかどうかを確認するために使用してみてください。さらに、返されるデータは構造化されている可能性があるため、応答データを解析し、ポスター名、写真、実際のコメントなどのさまざまな属性に応じてコメントを表示する必要があります。

于 2013-06-01T23:15:41.853 に答える
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 に答える