jle*_*and 1 ajax jquery timeout
我正在开发一个小型Web应用程序.我已经完成了服务器端代码,但我正在努力与客户端javascript.
我有一个每秒更新的html文件.此文件是完全静态的,我仅将其用于日志目的.
这个想法几乎完全相同,但在客户端进行了自动更新.
为此我想使用ajax进行数据库轮询.
我在这里实现了第一个版本,它只是打印相同的html文件,并且应该每秒重新加载它.
事情就是不更新,即使我在我的javascript控制台客户端没有看到任何错误.找到该文件,因为它正确加载,我没有看到为什么它不会更新我的div的任何原因.
这是我的代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<!-- Using Google CDN -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script>
(function worker() {
$.ajax({
url : 'http://jlengrand.pythonanywhere.com/static/leader.html',
success: function(data) {
$('.text').html(data);
},
complete: function() {
setTimeout(worker, 1000);
}
});
})();
</script>
</head>
<body>
<div class="text">
To be loaded <br />
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我尝试了本地(但文件较小)并且工作正常.
我知道重新加载整个文件并不聪明,但我想逐步构建,因为这是我第一次使用JavaScript开发.
我错过了什么?
错误:无用的setTimeout调用(参数周围缺少引号?)
你在setTimeout中运行worker.你需要删除()或者你需要把它放在''中:
setTimeout(worker, 1000);
Run Code Online (Sandbox Code Playgroud)
要么
setTimeout('worker()', 1000);
Run Code Online (Sandbox Code Playgroud)
*编辑:要防止缓存,请将网址更改为:
url : 'http://jlengrand.pythonanywhere.com/static/leader.html?rand='+Math.random(),
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6523 次 |
| 最近记录: |