不要依赖计时器中の时间

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

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

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

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)函数

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

时间: 2024-10-13 03:04:02

不要依赖计时器中の时间的相关文章

Makefile中头文件在依赖关系中作用

摘于:http://bbs.csdn.net/topics/120024677 (1)在makefile的依赖关系中用不用体现.h头文件?(2)如果在依赖关系中要体现.h头文件,应该体现到什么层次?==============================(1)在makefile的依赖关系中用不用体现.h头文件?============================== 下面是我的一些认识: 头文件中定义的是接口(函数接口,文件外全局变量和宏定义),它的作用是向调用文件封装函数的实现过程.在

cuda中时间用法

转载:http://blog.csdn.net/jdhanhua/article/details/4843653 因之前使用nvcc编译.cu 文件时,使用time_t及其一系列函数编译报不知名错误. 在CUDA中统计运算时间,大致有三种方法: <1>使用cutil.h中的函数unsigned int timer=0;//创建计时器cutCreateTimer(&timer);//开始计时cutStartTimer(timer);{  //统计的代码段  …………}//停止计时cutS

Quartz中时间表达式的设置-----corn表达式 (转)(http://www.cnblogs.com/GarfieldTom/p/3746290.html)

Quartz中时间表达式的设置-----corn表达式 (注:这是让我看比较明白的一个博文,但是抱歉,没有找到原作者,如有侵犯,请告知) 时间格式: <!-- s m h d m w(?) y(?) -->,   分别对应: 秒>分>小时>日>月>周>年, 举例: 1.每天什么时候执行: <value>0 59 23 * * ?</value>: 如下为每天23:59:00开始执行 <value>0 1,2,3 11,12

python中时间日期格式化符号

python中时间日期格式化符号: %y 两位数的年份表示(00-99) %Y 四位数的年份表示(000-9999) %m 月份(01-12) %d 月内中的一天(0-31) %H 24小时制小时数(0-23) %I 12小时制小时数(01-12) %M 分钟数(00=59) %S 秒(00-59) %a 本地简化星期名称 %A 本地完整星期名称 %b 本地简化的月份名称 %B 本地完整的月份名称 %c 本地相应的日期表示和时间表示 %j 年内的一天(001-366) %p 本地A.M.或P.M

Maven学习笔记之——坐标和依赖(中)

Maven学习笔记之--坐标和依赖(中) 1.    传递性依赖 1.1    何为传递性依赖 项目中经常有引入一个jar包还要引入其他与其相关的jar包.自己搜的话要注意很多.比如版本问题等.而Maven会解析解析各个直接依赖的POM.将哪些必要的间接依赖以传递依赖的形式引入到项目中. 依赖范围不仅可以控制依赖与三种classpath关系.还对传递依赖产生影响. 假设A依赖B,B依赖C,我们说A对于B是第一直接依赖,B对于C是第二直接依赖,A对于C是传递性依赖.第一直接依赖的范围和第二直接依赖

【转】Asp.net中时间格式化的6种方法详细总结

1. 数据控件绑定时格式化日期方法: 代码如下: <asp:BoundColumn DataField="AddTime" HeaderText="添加时间" DataFormatString="{0:yyyy-MM-dd HH:mm}></asp:BoundColumn> <asp:BoundField DataField="AddTime" HeaderText="添加时间" Dat

sqlserver 数据库中时间函数的建立

create function [dbo].[HtoSec](@lvalue as int)RETURNS intBEGINDECLARE @temp intSet @temp = @lvalue * 60 * 60RETURN @tempEND create function [dbo].[GetTime](@dtmValue as datetime)RETURNS intBEGINDECLARE @temp intDECLARE @GMT_TIMEZONE intSET @GMT_TIMEZ

python中时间的基本使用

格式化日期 我们可以使用 time 模块的 strftime 方法来格式化日期,: time.strftime(format[, t]) #!/usr/bin/python # -*- coding: UTF-8 -*- import time # 格式化成2016-03-20 11:45:39形式 print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) # 格式化成Sat Mar 28 22:24:24 2016形式 pr

mysql 中 时间和日期函数

原文链接: mysql 中 时间和日期函数 - redfox - 博客园 http://www.cnblogs.com/redfox241/archive/2009/07/23/1529092.html ----------------------------------------------------------------------------------------------------------------------------------------------------