具有随机重复时间的计时器管理器
TimerManager with random recurTime
我想要每次迭代的随机过期时间。此示例将仅随机化 5~15 秒之间的过期时间并永久使用它们。
var timer = qx.util.TimerManager.getInstance();
timer.start(function(userData, timerId)
{
this.debug("timer tick");
},
(Math.floor(Math.random()*11)*1000) + 5000,
this,
null,
0
);
如果有的话,我也接受纯JS解决方案。
http://demo.qooxdoo.org/current/apiviewer/#qx.util.TimerManager
问题是 TimerManager.start 的 recurTime
参数是普通函数的普通参数,因此在调用函数时只计算一次。这不是一个一遍又一遍地重新计算的表达式。这意味着您只能使用TimerManager获得等距执行。
您可能必须手动编写所需的代码,例如,使用qx.event.Timer.once
每次调用重新计算超时。
编辑:
这里有一个代码片段,可能会朝着正确的方向发展(这将在 qooxdoo 类的上下文中工作):
var that = this;
function doStuff(timeout) {
// do the things here you want to do in every timeout
// this example just logs the new calculated time offset
that.debug(timeout);
}
function callBack() {
// this just calls doStuff and handles a new time offset
var timeout = (Math.floor(Math.random()*11)*1000) + 5000;
doStuff(timeout);
qx.event.Timer.once(callBack, that, timeout);
}
// fire off the first execution
qx.event.Timer.once(callBack, that, 5000);
相关文章:
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 如何访问声音管理器2创建的声音对象
- JS编译器/包管理器,用于版本控制
- Modx数据包管理器ext-all.js错误
- 根据单个用户的决定禁用谷歌标签管理器(选择退出)
- jquery在通过谷歌标签管理器交付时点击不工作
- 删除$fromtataLayertotal-google标签管理器
- 资源管理器9上的html5视频缓存
- 如何在 elfinder(一个 jquery 文件管理器插件)中只显示文件夹列表
- 在全局声音管理器对象上完成
- Web 驱动程序管理器更新错误:EACCES,权限被拒绝
- 声音管理器2 - 停止声音时失真
- 谷歌跟踪代码管理器使用什么模式来观察 de 'dataLayer' 数组
- 为什么谷歌跟踪代码管理器不能安装在正文下的另一个HTML元素中
- Connect资产管理器文件与req.url不匹配
- 谷歌标签管理器点击事件没有冒泡到家长
- 加载两个脚本块(使用lab.js作为加载管理器)
- 错误管理器:从标准Java到Servlet
- 谷歌跟踪代码管理器自定义计时器事件
- 具有随机重复时间的计时器管理器