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

Javascript/AJAX自动在文本文件中显示文本,javascript,text,Javascript,Text,我正在尝试制作一个简单的AJAX程序,它总是显示文件中的最新文本。 它应该从文件中检索它,等待2秒钟,如果有更改,则将其写出。 我已经试过了,但代码似乎不起作用 <html> <head> <script type="text/javascript"> function sleep() { var dt = new Date(); dt.setTime(dt.getTime

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

函数sleep()
{
var dt=新日期();
dt.setTime(dt.getTime()+2000);
while(newdate().getTime()
如何让它自动检查和更新文本

谢谢

编辑:

以下是所有感兴趣的人的最终代码:

<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>

函数loadXMLDoc()
{
var-xmlhttp;
if(window.XMLHttpRequest)
{
xmlhttp=新的XMLHttpRequest();
}
xmlhttp.onreadystatechange=函数()
{
if(xmlhttp.readyState==4&&xmlhttp.status==200)
{
document.getElementById(“myDiv”).innerHTML=xmlhttp.responseText;
}
}
open(“GET”,“status.txt”,true);
xmlhttp.send();
}
loadXMLDoc();
现状
setInterval(“loadXMLDoc()”,2000年);

我不确定这是打字错误还是来自另一种语言。(如PHP)

在HTML中,不能有跨越多个脚本标记的javascript代码

另外,while循环只有一个=符号,需要两个来进行比较

但也就是说,您确实需要setTimeout或setInterval,因为非多线程javascript只会锁定,多线程javascript也会浪费处理时间,但不会完全锁定

差不多

setInterval("loadXMLDoc()", 2000);
setTimeout在第二个参数毫秒后以javascript形式执行第一个参数

setInterval执行类似的setTimeout,但每X毫秒执行一次

setTimeout和setInterval都返回一个值,该值可用于停止再次执行javascript

该值用于
清除超时(值)
清除间隔(值)

页面正文如下所示:

<body>
    <div id="myDiv"><h2>Status</h2></div>
    <script type="text/javascript">
        setInterval("loadXMLDoc()", 2000);
    </script>
</body>

地位
setInterval(“loadXMLDoc()”,2000年);

你的第二个和第三个标签看起来很奇怪。粘贴错误?不要尝试基于
for
while
循环编写
sleep()
函数-它会在浏览器运行时锁定浏览器。改为查看
setTimeout()
,好的,所以我更新了它,更改了脚本标记,并创建了一个setTimeout。但为什么它仍然不起作用?你读过吗?第一个参数需要是函数引用,而不是函数调用,因此请在
loadXMLDoc()
之后去掉括号,使其成为
setTimeout(loadXMLDoc,1000)