我有一个无限滚动样式页面,我正在处理,(对于无限滚动的示例,单击此处并向下滚动),它会update()在用户每次滚动时调用一个函数,等等。
我可以setInterval改为使用并检查每 x 毫秒,但是通过调用自身的超时,页面响应更快、更可靠。
基本上,update()向页面添加一些内容,然后,如果该内容不足以让您向下滚动更多,则设置超时以update()再次调用。如果你只滚动一个像素,这会很好,但当然,当你滚动时,它会发送数十或数百个滚动事件。这会成为一个问题,因为将同时运行数十(或数百)次超时。超时太多会扼杀我想要的添加新内容的一致动画。
所以我想检查超时是否已经使用我拥有的 ID 等待执行,但是似乎没有一个函数是 JavaScript。有没有办法检查超时 ID 是否已执行?如果没有,是否有其他选择?我有 JQuery。
...或者我应该间隔一段时间并牺牲响应能力?
当函数触发时,清除间隔并将保存初始值的变量设置为 null。然后检查是否有空值。如果你正在做一堆这样的事情,你可以通过你拥有的 id 将它们存储在一个数组中。
例如:
var intervals = [];
if(intervals[id] != null){
intervals[id] = setTimeout(some_func, 1000);
var some_func = function(){
// do stuff
clearTimeout(intervals[id]);
intervals[id] = null;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3624 次 |
| 最近记录: |