注册 登录
编程论坛 JavaScript论坛

【求助】一个简单计时器的问题

yyjarry 发布于 2009-08-13 09:10, 569 次点击
<html>
    <head>
        <title>计时器</title>
        <meta http-equiv="content-type" content="text/html;charset=gb2312">
        <script type="text/javascript" language="javascript">
        <!--
            //定义变量,该变量用于存储setTimeout()方法的返回值
            var timeoutId;
            
            //开始计数
            function countBegin()
            {
                //将文本框中的数字加1后显示在文本框中
                myForm.myText.value = parseInt(myForm.myText.value)+1;
                //延时0.1秒后再将执行该函数
                timeoutId = window.setTimeout("countBegin()",100);
            }
            
            //停止计数
            function countEnd()
            {
                window.clearTimeout(timeoutId);
            }
        -->
        </script>
    </head>
    <body>
        <form name="myForm">
            计时:<input type="text" size="5" value="0" name="myText"><br>
            <input type="button" value="开始计时" onclick="countBegin()">
            <input type="button" value="停止计时" onclick="countEnd()">
        </form>
    </body>
</html>


countBegin()函数中的setTimeout 为什么不能改成setInterval?修改后的效果是 CPU狂升 数值越大就跳跃的增大了
2 回复
#2
快乐梦游2009-08-13 13:41
setInterval是自动定时触发,上面的机制是递归的,会产生N多的并发流程
#3
Fieldens2009-08-13 15:58
setInterval是每次
setTimeout一次性
1