设置超时 执行速度比分配的间隔快
SetTimeout Executing faster then assigned interval
我已经为Settimeout分配了5000毫秒,但它在分配的时间间隔之前执行。任何机构都可以解释为什么会发生这种情况。
<script type="text/javascript">
var getcallback = {
closure: function (callback, functionparam) {
return callback.call(functionparam);
}
}
var cleartimeout;
var startSlideShow = {
timerid: 5000,
startAnimation: function () {
cleartimeout = setTimeout(getcallback.closure(function () {
alert("this is a basic example of chaining methods");
this.startAnimation();
},this), this.timerid);
},
stopAnimation:function(){
}
}
startSlideShow.startAnimation();
</script>
由于getcallback.closure()
会立即执行该函数,因此您不会存储对稍后调用的函数的引用。
一旦你调用startAnimation
,你就调用getcallback.closure
,它会立即调用回调函数。要正确使用setTimeout
,您需要让闭包返回一个函数,或者不使用这种奇怪的东西,而只使用匿名函数。
大致如下:
var getcallback = {
closure: function (callback, functionparam) {
return function() {
callback.call(functionparam);
};
}
}
...
或者,为了更干净起见,只需:
var cleartimeout;
var startSlideShow = {
timerid: 5000,
startAnimation: function () {
cleartimeout = setTimeout(function () {
alert("this is a basic example of chaining methods");
this.startAnimation();
}, this.timerid);
},
stopAnimation:function(){
}
}
startSlideShow.startAnimation();
相关文章:
- 如何将HTML id分配给元素,以及如何将JavaScript应用于元素
- 在循环中分配json值时,值被覆盖
- 动态分配GA增强型电子商务跟踪器
- 将jsp文件下拉列表中的选定项分配给一个java变量(比如String selection)
- 如何在jQuery中将函数的输出分配给变量
- 为集合分配大量的模型弹药
- onclick函数需要双击,因为类分配延迟
- Javascript 将变量分配给警报
- 使用优化器在慢速连接上加载main.js时需要js超时
- 将节点数据分配给另一个变量jstree
- 如何发送分配列表<字符串>到JavaScript数组或可枚举对象
- Javascript变量分配-按类别
- 如何将内容分配给元素
- 当浏览器控制台未打开时,为什么要求会导致Internet Explorer 9超时
- 为变量分配多个nodejs导出返回值时出现问题
- 超时功能的性能
- 设置超时 执行速度比分配的间隔快
- 一旦超时执行,清除或重新分配分配给 setTimeout 返回值的变量是否有任何技术点
- 有没有办法在javascript中查看变量是否分配了超时
- jQuery为每个元素分配带有超时的事件处理程序