<script language="javascript" type="text/javascript">
self.setTimeout("showTime()",5000);
function showTime(){
var date = new Date();
document.getElementById("clock").value = date;
self.setInterval("showTime()",5);
}
</script>
<button id="clock" style="width:300px; border:none;" onclick="window.clearInterval(int);"></button>
解决方案 »
- 关于window.opener.document.body).children("#div1")与clone
- javascript如何取textarea里的每个值;当作数组或者for出来
- ext 表单提交,滚动到对应验证失败的控件
- jquery checkbox选中问题
- 树形菜单问题请教
- 谁能详细介绍下 this.initialize.apply(this, arguments);
- 请问如何用js读出 marquee的内容
- 求一个密码验证的正则表达式
- 怎样知道focus是否停留在某个控件上,急等。。。
- 鼠标事件冲突!!!在线等候!!!!
- javascript 如何确保先执行一段程序在进行下一步
- 发现一些问题 有类似问题的朋友 都写下来
self.setInterval("showTime()",5); 重复执行的间隔太小了吧
等于新开一个延迟任务.
setInterval
等于新开一个定时任务.延迟任务只是对自身的延迟.然后执行定义中的方法.
定时任务是不断增加地调用定义中的方法.你这个用法等于1秒产生2^200个showTime方法实例.能不占内存吗?
<button id="clock" style="width:300px; border:none;" onclick="window.clearTimeout(timer);">Time</button><script type="text/javascript">
var dd = document.getElementById("clock");//将DOM对象取出,减少每次查找DOM的时间
var timer = window.setTimeout(showTime,1000);
function showTime(){
dd.innerHTML = new Date();
timer = window.setTimeout(showTime,5);//全部改用timeouts方式
}
</script>
改成 window.setTimeout(showTime,500);或window.setTimeout(showTime,1000);
1000=1秒
你的问题在这,每过5毫秒就会有一个新的setInterval()被添加,并且关闭前无限添加