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