我在页面上有一个基于jquery的滑块。此滑块调用函数以在每次值更改时更新变量并执行其他一些操作。这意味着在拖动滑块手柄时会过于频繁地调用该函数。这导致了性能问题。
当前的Psudo:
Slider.onSlide: trigger function ValueChange(V)
function ValueChange(V) {Variable=V; other code;};
我想仅在自上次更改后经过X个毫秒数(300)时才更改该值。这将大大提高性能。
这里的目的是减少滑动时触发ValueChange(V)的次数。只有时间延迟在这里不起作用,重要的是;
即使最后一个幻灯片位置在X秒数周期内,也始终设置滑块的最后一个值。 (虽然它可以在X秒后设置而不是立即设置)
该值更改为最新的滑块位置值,而不是之前的滑块位置值X秒数。
我认为需要一个中间函数,如果上面的两个检查通过,则调用ValueChange(V)。
我希望它有意义......真的需要帮助......这对我欠发达的大脑来说太复杂了......真的! :d
提前致谢, 诺曼。
P.S:由于我有可用的库,因此欢迎使用jQuery解决方案。
答案 0 :(得分:1)
每次更改时将值存储在变量中,并使用一个间隔运行的函数来检查值是否已更改:
var currentValue, lastValue;
function ValueChange(V) {
currentValue = V;
};
window.setInterval(function(){
if (lastValue != currentValue) {
lastValue = currentValue;
Variable = currentValue; other code;
}
}, 50);
我选择了50毫秒的间隔。因为这是动画制作动画的合理间隔。您可以尝试使用300毫秒的间隔,但这只会每秒更新三次,这可能看起来不稳定。