为什么用SetTimeOut运行时间总是9秒一次

zy35147972122 2012-05-04 03:57:58

function SetFun() {
setTimeout('LoadTopWorkList2()', 5000);
}
function LoadTopWorkList2() {
document.getElementById("btnSearch").click();
setTimeout('LoadTopWorkList2()', 200000);
}

</script>
</head>
<body onload="SetFun()">
...全文
142 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zy35147972122 2012-05-04
  • 打赏
  • 举报
回复
明白是为什么了 因为我调用服端的按钮时间后,页面刷新了,<body>的Onload事件重新执行,我onload事件中只是设定了5秒,所以加上链接服务器的数据库时间就变成了9秒左右了
zy35147972122 2012-05-04
  • 打赏
  • 举报
回复
如果SettimeOut每200秒运行一次的话,后台的事件也应该隔200秒运行一次啊
zy35147972122 2012-05-04
  • 打赏
  • 举报
回复
但是不应该啊,我后台的方法就是一个获取当前时间,并插入到数据库中。确实如果我不调用后台的方法的话,只调用前台的JS方法,运行正常
乌镇程序员 2012-05-04
  • 打赏
  • 举报
回复
搞不懂你为什么要写得这么复杂,利用setInterval()函数可以把你要做的事情精简为一行:
window.onload = function() {
setInterval('document.getElementById("btnSearch").click();', 200000);
}
长恨无绝 2012-05-04
  • 打赏
  • 举报
回复
function SetFun() {
setTimeout('LoadTopWorkList2()', 5000);
}
function LoadTopWorkList2() {
var btnSearch=document.getElementById("btnSearch");
if(btnSearch.working)
clearTimeOut(btnSearch.working);
btnSearch.click();
btnSearch.working=setTimeout('LoadTopWorkList2()', 200000);
}
三石-gary 2012-05-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

就是啊,我是设定了200秒,但是在后台的事件中往数据库写数据的时候可以看到只相隔9秒就运行一次
[/Quote]
那就是你后台的问题了。。应该和setTimeout没有关系
乌镇程序员 2012-05-04
  • 打赏
  • 举报
回复
应该不是setTimeout()引起的,我照着你的代码写了一个,是按预期运行的。
<!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" />
<title>无标题文档</title>
<script type="text/javascript">
function f1() {
setTimeout('f2()', 5000);
}
function f2() {
document.getElementById('demo').innerHTML = 0;
setTimeout('f2()', 10000);
}
window.onload = function() {
setInterval('var demo = document.getElementById("demo"); demo.innerHTML = parseInt(demo.innerHTML) + 1;', 1000);
f1();
}
</script>
</head>

<body>
<span id="demo">0</span>
</body>
</html>
zy35147972122 2012-05-04
  • 打赏
  • 举报
回复
就是啊,我是设定了200秒,但是在后台的事件中往数据库写数据的时候可以看到只相隔9秒就运行一次
三石-gary 2012-05-04
  • 打赏
  • 举报
回复
没看懂你的问题。。你上面已经设定了时间了啊。。怎么能9秒了。。

87,901

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧