【发布时间】:2012-07-06 21:44:23
【问题描述】:
我最近对 setInterval 和 clearInterval 进行了很多试验,以创建我自己的自定义效果,而我一直在做的事情之一是在保持全局范围之外清除间隔的有效方法。我正在尝试通过使用 .promise() 调用 clearInterval() 来提高可读性并探索可能的性能提升(以下是我正在尝试做的示例):
//caller is a collection of elements
function performEffect(caller) {
var interval = setInterval(function() { caller.next(); }, 500);
caller.promise().done(function() { interval = clearInterval(interval); });
}
直到最近,我一直在使用嵌入式函数设置和清除间隔(示例):
function performEffect(caller) {
var interval;
var count = 0;
var len = caller.length;
if (count >= len) {
interval = clearInterval(interval);
}
var tmr = function () {
interval = setInterval(function () { effectFunciton(count++); }, 100);
}
}
附:很抱歉没有发布原版 - 我的版本控制系统已损坏。另外,我知道这个例子有点傻,因为我可以很容易地使用 for 循环或 .each(),但这只是一个例子 - 我确实有一些我不想使用循环的实例。
这是我的第一篇文章,所以如果我做了一些与公认做法不同的事情,我提前道歉。请让我知道我将来是否可以做些什么来改进我的帖子 - 我总是乐于接受建设性的批评:)
谢谢!
【问题讨论】:
标签: javascript jquery setinterval clearinterval promise