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