使用间歇调用,在鼠标点击时使用清除调用,可消除情况:点击开始后开始执行,在点击开始又一次执行,导致间歇时间看起来很短。 用同样的方法消除超时调用不起作用,为什么?

       play.onclick=function(){
        // 间歇调用实现定时器
        clearInterval(timer); //清除
        timer=setInterval(function(){
            var i=Math.floor(Math.random()*8);
             title.innerHTML=data[i];
        },200);
    }

    stop.onclick=function(){
        clearInterval(timer);
    }

使用超时调用代替

    play.onclick=function(){
        clearTimeout(timer);//清除不起作用
        flag=0;
        timer=setTimeout(getWard,200);//使用超时调用模拟 间歇调用
        function getWard(){
            var i=Math.floor(Math.random()*8);
             // title.innerHTML=data[i];
             console.log(i);
            if (flag==0) {
                setTimeout(getWard,200);//递归
            }
        }

    }

    stop.onclick=function(){
        clearTimeout(timer);
        flag=1;
    }

使用间歇调用,在鼠标点击时使用清除调用,可消除情况:点击开始后开始执行,在点击开始又一次执行,导致间歇时间看起来很短。

用同样的方法消除超时调用不起作用,为什么?

couragedn
浏览 1676回答 1
1回答

不断滴自我催眠

清除不了递归吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript