Javascript定时器的使用

在Javascript中有两个函数可以实现"定时器"的功能setTimeout和setInterval,这两个函数的参数是相同的,但是代表的意义有所差别。例如setTimeout('test()',3000);的意思是3000毫秒之后执行函数test()(仅仅执行一次),setInterval('test()',3000); 表示每隔3000毫秒执行一次test()函数。一个是仅仅执行一次一个是不断执行。我们编写如下代码:
  1. <script>
  2. function test(){
  3.     alert('111');
  4. }
  5. setInterval('test()',3000);//每隔3秒执行一次函数test()
  6. </script>

        我们执行会看到每隔3秒会执行alert('111');不会停止,如果编写如下代码:

  1. <script>
  2. function test(){
  3.     alert('111');
  4. }
  5. setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
  6. </script>

        运行会发现3秒后执行一次就不执行了,这就是两者的差别,使用哪一个看我们的具体需求,其实变通一下也可以使setTimeout具有和setInterval同样的功能,例如:

  1. <script>
  2. function test(){
  3.     alert('111');
  4.     setTimeout('test()',3000);//函数内调用
  5. }
  6. setTimeout('test()',3000); //3秒之后执行一次(仅仅执行一次)
  7. </script>
        在函数内执行了setTimeout,这样我们执行后会发现也是每隔3秒执行一次的。另外要注意的是,有时我们需要手动停止执行,例如我们使用定时器实现了图片的漂浮功能(每隔一定时间设置图片的坐标),当鼠标移动到图片时我们需要定时器“失效”,这如何实现呢?如果使用了setInterval那很好办,在执行setInterval后,回返回一个timer ID,如果将该ID传递给函数clearInterval,就可以终止执行调用过的函数了,例如:
  1. <div id="show">0</div>
  2. <script>
  3. function test(){
  4.     var obj document.getElementById('show');
  5.     obj.innerHTML parseInt(obj.innerHTML) + 1;
  6. }
  7. function start_add(){
  8.     time_id setInterval('test()',500);//每隔0.5秒执行一次函数test()
  9. }
  10. </script>
  11. <input type="button" value="点击开始执行" οnclick="start_add();" />
  12. <input type="button" value="点击终止执行" οnclick="clearInterval(time_id);" />
        可以执行一下以上代码看一下效果。
JavaScript中,常用的定时器方法有四个:setTimeout、setInterval、clearTimeout和clearInterval。 setTimeout函数用于在指定的时间后执行一次JavaScript代码。它的格式为setTimeout("js语句", 定时时间),其中定时时间的单位是毫。例如,使用setTimeout的语法如下: setTimeout(function(){ console.log("炸弹定时器,到达时间后执行"); }, 5000); 这段代码会在5后执行一次console.log语句。 setInterval函数用于按照指定的时间间隔重复执行一段JavaScript代码。它的格式为setInterval(函数, 时间),其中时间的单位是毫。例如,使用setInterval的语法如下: var i = 0; setInterval(function(){ console.log(i); i++; }, 1000); 这段代码每隔1钟输出一次i的值,并将i的值加1。 如果需要停止定时器的执行,可以使用clearTimeout和clearInterval函数。它们的格式分别为clearTimeout(需要停止的对象)和clearInterval(需要停止的对象)。例如,使用clearTimeout和clearInterval的语法如下: var num1 = setTimeout(function(){}, 时间); var num2 = setInterval(function(){}, 时间); clearTimeout(num1); clearInterval(num2); 这段代码会先定义两个定时器对象num1和num2,然后通过调用clearTimeout和clearInterval函数来关闭对定时器。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [简述js定时器的用法](https://blog.csdn.net/suorce/article/details/82841781)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Javascript定时器使用方法](https://blog.csdn.net/qq_57340195/article/details/124441862)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值