Javascript / AJAX自动在文本文件中显示文本

时间:2012-08-09 07:00:23

标签: javascript text

我正在尝试创建一个简单的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>

1 个答案:

答案 0 :(得分:0)

我不确定这是一个错字还是其他语言的东西。 (像PHP一样)

在HTML中,您不能拥有跨多个脚本标记的JavaScript代码。

你的while循环只有一个=符号,需要两个才能进行比较。

但据说你确实想要setTimeout或setInterval,因为非多线程的javascript只会锁定,多线程的会浪费处理时间但不会完全锁定。

这样的东西
setInterval("loadXMLDoc()", 2000);

setTimeout在第二个毫秒参数后执行第一个参数为javascript。

除了每隔X毫秒,

setInterval执行类似的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>