0

私は、ファイルから常に最新のテキストを表示する単純なAJAXプログラムを作成しようとしています。ファイルから取得し、2秒待ってから、何か変更があった場合は書き出します。すでに試しましたが、コードが機能しないようです。

<html>
<head>
    <script type="text/javascript">
        function sleep()
        {
            var dt = new Date();
            dt.setTime(dt.getTime() + 2000);
            while (new Date().getTime() < dt.getTime());
        }
        function loadXMLDoc()
        {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {
          xmlhttp=new XMLHttpRequest();
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open("GET","ajaxtest.txt",true);
        xmlhttp.send();
        }
    </script>
</head>
<body>
    <script>
    while (0=0)
     {
        loadXMLDoc();

    </script>
        <div id="myDiv"><h2>Status</h2></div>
        <script type="text/javascript">
        setTimeout(loadXMLDoc(),1000)
    }
    </script>

</body>
</html>

テキストを自動的にチェックして更新するにはどうすればよいですか?

ありがとう!

編集:

興味のある人のための最終的なコードは次のとおりです。

<html>
<head>
    <script type="text/javascript">
        function loadXMLDoc()
        {
        var xmlhttp;
        if (window.XMLHttpRequest)
          {
          xmlhttp=new XMLHttpRequest();
          }
        xmlhttp.onreadystatechange=function()
          {
          if (xmlhttp.readyState==4 && xmlhttp.status==200)
            {
            document.getElementById("myDiv").innerHTML=xmlhttp.responseText;
            }
          }
        xmlhttp.open("GET","status.txt",true);
        xmlhttp.send();
        }
    </script>
</head>
<body>
    <script type="text/javascript">
        loadXMLDoc();
    </script>
    <div id="myDiv">Current Status</div>
    <script type="text/javascript">
        setInterval("loadXMLDoc()", 2000);
    </script>
</body>
</html>
4

1 に答える 1

0

それがタイプミスなのか、他の言語のものなのかはわかりません。(PHPのように)

HTMLでは、複数のスクリプトタグにまたがるJavaScriptコードを使用することはできません。

また、whileループには=記号が1つしかないため、比較するには2つ必要です。

ただし、マルチスレッドではないJavaScriptはロックアップするだけなので、setTimeoutまたはsetIntervalが必要だと言われています。マルチスレッドのJavaScriptも処理時間を浪費しますが、完全にロックアップされるわけではありません。

何かのようなもの

setInterval("loadXMLDoc()", 2000);

setTimeoutは、ミリ秒の2番目のパラメーターの後に最初のパラメーターをjavascriptとして実行します。

setIntervalは、Xミリ秒ごとを除いて、同様のsetTimeoutを実行します。

setTimeoutとsetIntervalはどちらも、JavaScriptの再実行を停止するために使用できる値を返します。

その値はclearTimeout(value)またはで使用されますclearInterval(value)

ページの本文は次のようになります。

<body>
    <div id="myDiv"><h2>Status</h2></div>
    <script type="text/javascript">
        setInterval("loadXMLDoc()", 2000);
    </script>
</body>
于 2012-08-09T07:18:56.940 に答える