0

1秒ごとに続けたいAJAXコードがいくつかあります。これを HTML ページに追加して、それ自体が更新され続けるかどうかを確認しましたが、変更を確認するには更新する必要があります。

        while (1) {
            getTime();
        }

これは更新を続けるために機能しませんでした。テキストを更新することはありませんでした。Ajaxに何かを何度も実行させる方法は何ですか?

getTime() は次のとおりです。

        function getTime() {
            if (str=="") {
                document.getElementById("txtHint").innerHTML="";
                return;
            } 

            if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
                xmlhttp=new XMLHttpRequest();
            } else {// code for IE6, IE5
                xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }

            xmlhttp.onreadystatechange=function() {
                if (xmlhttp.readyState==4 && xmlhttp.status==200) {
                    document.getElementById("txtHint").innerHTML=xmlhttp.responseText;
                }
            }

            xmlhttp.open("GET","auction.php?getTime=1",true);
            xmlhttp.send();

            setTimeout(getTime, 1000);
        }

ありがとう!

4

5 に答える 5

1

反復的なタスクは通常、次を使用して JavaScript で実行されsetIntervalます。

window.setInterval 関数を呼び出すか、コード スニペットを繰り返し実行します。その関数を呼び出すたびに一定の時間遅延があります。

あなたの例では、それは

setInterval(getTime, 1000);
于 2012-10-05T02:10:12.510 に答える
0

setInterval()最善の策かもしれません-代わりに、setTimeoutAJAXの成功で繰り返しリセットします。

于 2012-10-05T02:10:28.660 に答える
0
setInterval(getTime, 1000); // Run getTime() every second
setInterval(getTime, 200);  // Run getTime() every 200 milliseconds
于 2012-10-05T02:11:12.467 に答える
0

コードは無限ループであり、ブラウザーがすぐに処理できる js からのオープン接続の制限数に達します。

そのようなことをするために使用window.setIntervalします。

window.setInterval(getTime, 1000);
于 2012-10-05T02:11:17.410 に答える
0
function getTime(){
     setTimeout(getTime, [interval]);
}

これでうまくいくはずです。

于 2012-10-05T02:12:53.180 に答える