码迷,mamicode.com
首页 > 其他好文 > 详细

不要依赖计时器中の时间

时间:2016-06-07 06:29:46      阅读:193      评论:0      收藏:0      [点我收藏+]

标签:

技术分享

有很多需求都是需要计时器的 比如那种常见的倒计时 虽然很简单 但是其中也有许多糟糕的实现

计时器只能提供到某个时间点触发某个队列的功能  而具体触发的时间点是不确定的

比如在计时器中递增或递减某个变量某个行为 就不适合倒计时这种实现 如下代码

var t = 100;
setTinterval(function(){
  --t;
});

这种代码做倒计时就是个大坑 如果你把窗口切换了 倒计时功能直接傻逼了

再加上触发的间隔也不能保证  如果期间又插进来一个耗时较长的消息队列 那么你的倒计时功能又再次被推迟!

所以类似倒计时的这种程序  最好是基于时间来计算 如下

var t = Date.now()+23333;
setTinterval(function(_t){
    if(Date.now()-t>=0)
    //....
});

其实我们应该用setTimeout来代替setInterval setInterval能实现的setTimeout都可以做。。

那些非css3 transition animate的动画是要依赖计时器的 其中实时性不强的动画用递增递减变量来操控是可以的 窗口切换也没多大关系 而且方便。。

但是有些功能必须是基于时间来计算的!

比如 即将诞生的  react视频弹幕播放系统  每一条弹幕的坐标位置必须是 f(t)函数 

这篇博文没多少东西 只是衬托上面那行文字(提高梦想の达成率)~

不要依赖计时器中の时间

标签:

原文地址:http://www.cnblogs.com/daidaidai/p/5565689.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!