注册 登录
编程论坛 JavaScript论坛

动态时钟代码运行没多久电脑就很卡,请帮我看看代码有什么问题,谢谢

zhongyiyong 发布于 2010-12-04 14:17, 644 次点击
<html>
<head>
<title>动态计时器</title>
<script language="javascript">
    function n()
    {
    var now=new Date()
    year=now.getYear()+"年"
    month=now.getMonth()+"月"
    day=now.getDate()+"日"
    hours=now.getHours()+"时"
    minutes=now.getMinutes()+"分"
    secends=now.getSeconds()+"秒"
    my.innerHTML=year+month+day+hours+minutes+secends
    setInterval("n()",1000)
    }   
</script>
</head>
<body onLoad="n()">
<div id="my"></div>
</body>
</html>
5 回复
#2
jianghong_022010-12-04 14:36
<html>
<head>
<title>动态计时器</title>
<script language="javascript">
    function n()
    {
    var now=new Date()
    year=now.getYear()+"年"
    month=now.getMonth()+"月"
    day=now.getDate()+"日"
    hours=now.getHours()+"时"
    minutes=now.getMinutes()+"分"
    secends=now.getSeconds()+"秒"
    my.innerHTML=year+month+day+hours+minutes+secends
    setInterval("n()",1000)
    }   /* 没有问题。也可能这样写setInterval("n()",1000)--->var my=setTimeout("n()",1000);用这个你试试看还卡不*/

</script>
</head>
<body onLoad="n()">
<div id="my"></div>
</body>
</html>
#3
jianghong_022010-12-04 14:41
setTimeout() 只执行 code 一次。如果要多次调用,使用 setInterval() 或者让 code 自身再次调用 setTimeout()。
#4
jianghong_022010-12-04 15:01
/* 没有问题。也可能这样写setInterval("n()",1000)--->var aa=setTimeout("n()",1000);用这个你试试看还卡不*/

#5
sclorg2010-12-06 13:19
写里面会造成累加调用,1,2,4,8,16。。。每过一秒调用次数翻一倍,时间一长,电脑自然吃不消
写外面就好了
<html>
<head>
<title>动态计时器</title>
<script language="javascript">
    function n()
    {
    var now=new Date()
    year=now.getYear()+"年"
    month=now.getMonth()+"月"
    day=now.getDate()+"日"
    hours=now.getHours()+"时"
    minutes=now.getMinutes()+"分"
    secends=now.getSeconds()+"秒"
    my.innerHTML=year+month+day+hours+minutes+secends
        }  
    setInterval("n()",1000)
</script>
</head>
<body onLoad="n()">
<div id="my"></div>
</body>
</html>
#6
xwanq2010-12-06 16:32
同意楼上的意见!
应把setInterval("n()",1000)写在外面
1