管理不应该发生冲突的定时事件

时间:2015-02-11 07:56:06

标签: javascript

我是JavaScript的新手,我一直在研究和使用事件计时以及setInterval和setTimeout函数。我有一个简单的代码,在5秒的间隔后显示一个问候语“早安”,“今天你好吗?”间隔10秒后。

script type="text/javascript">

    setInterval(function () {document.write("Good Morning")}, 5000); 

    setInterval( function () {document.write("How are you doing today?")}, 10000);


    </script>

问题出现在每10秒钟后,两者显然会同时出现,这不是理想的情况。如何在不改变上面代码中的时间的情况下纠正这个问题?确保问候“早安”的某种方式成为首要任务。

2 个答案:

答案 0 :(得分:0)

如果你想得到“早安”和“今天你好吗?”每隔5秒逐个消息使用:

!function greet(){
    setTimeout(function(){
        log('Good Morning');
         setTimeout(function(){
            log('How are you doing today?');
            greet();
        }, 5000); 
    }, 5000);   
}();

fiddle

advanced version

updated

如果您想要其他行为,请澄清。

答案 1 :(得分:0)

你可以简单地使用10秒的间隔,延迟以5秒的超时时间开始其中一个间隔。

setInterval(function () {
    console.log("Good Morning", new Date)
}, 10000);

setTimeout(function () {
    setInterval(function () {
        console.log("How are you doing today?", new Date)
    }, 10000);
}, 5000);

http://jsfiddle.net/roz5z31w/

(请注意,我已将document.write替换为console.log,因此您必须检查浏览器的JS控制台以查看结果。至于为什么今天不再使用document.write,请做一些研究。)