setTimeout与setInterval方法的区别

setTimeout(a(),500),在500毫秒后只执行1次方法a(),而setInterval(a(),500)是每隔500秒执行一次
方法a()。也就是说如果不把前者放在循环里,就不能实现后者的循环功能。
    怎样循环调用setTimeout(a(),500)方法来来实现setInterval(a(),500)的功能呢?
    比如:function a(){
             .......                  //其它代码
             setTimeout('a()',5000);  //5秒后运行a()函数
          }
    两个方法能实现同样的效果,但是还是有区别的。
    假设需要10秒时间运行a()方法里的其它代码,也就是说第一次运行至代码setTimeout('a()',5000)需要10秒。之后5秒钟再次运行a()方法,则第二次运行至代码setTimeout('a()',5000)需要25秒。   
    若用setInterval(a(),5000),不管a()方法需要多少时间运行,都是每隔5秒运行一次。
    那什么时候用setTimeout?什么时候用setInterval?
    如果不希望连续调用产生互相干扰的状况就用前者,如果希望每隔固定时间精确的执行某个动作就用后者。具体情况还是要具体分析的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值