你的位置:首页 > 软件开发 > Java > 关于JavaScript定时器我的一些小理解

关于JavaScript定时器我的一些小理解

发布时间:2016-04-03 00:00:03
因为自己在平时工作中,有些功能需要用到定时器,但是定时器并不像我们表边上看到的那样,所以这周末我看看书查查资料,深入研究了一下JavaScript中的定时器,那么废话不多说,下面进入我们今天的正题。大家都知道JavaScript是单线程的,所以不管是定时器还是用户的操作都是需要在 ...

关于JavaScript定时器我的一些小理解

因为自己在平时工作中,有些功能需要用到定时器,但是定时器并不像我们表边上看到的那样,所以这周末我看看书查查资料,深入研究了一下JavaScript中的定时器,那么废话不多说,下面进入我们今天的正题。

大家都知道JavaScript是单线程的,所以不管是定时器还是用户的操作都是需要在线程队列中排队执行的。

一、定时器在执行线程队列里的分析

为了更好的理解我还是直接写个测试代码来看一下,这样分析起来更直观一些

 1 <script type="text/javascript"> 2   var time1 = new Date().getTime(); 3   console.log("阶乘函数开始时间:"+time1); 4   function factorial(num) { 5     if(num <= 1) { 6       return 1; 7     } else { 8       return num * arguments.callee(num - 1);  9     }10   }11   var result = factorial(150);12   console.log("阶乘函数结果:"+result);13   var time2 = new Date().getTime();14   console.log("阶乘函数结束时间1:"+time2);15   console.log("阶乘函数所用时间:"+(time2-time1));16   setTimeout(function(){17     var time3 = new Date().getTime();18     factorial(10000);19     var time4 = new Date().getTime();20     console.log("setTimeout被执行时间:"+time3);21     console.log("setTimeout执行的差值时间:"+(time3-time1));22     console.log("setTimeout里面的函数运行时间:"+(time4-time3));23   },10);24   setInterval(function(){25     var time5 = new Date().getTime();26     console.log("setInterval被执行时间:"+time5);27     console.log("setInterval执行的差值时间:"+(time5-time1));28   },10);29 </script>

原标题:关于JavaScript定时器我的一些小理解

关键词:JavaScript

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。