当前位置: 代码迷 >> JavaScript >> X秒后触发javascript函数-有条件
  详细解决方案

X秒后触发javascript函数-有条件

热度:81   发布时间:2023-06-05 11:50:32.0

我在页面上有一个基于jquery的滑块。 此滑块会在每次值更改时调用一个函数来更新变量,并执行其他一些操作。 这意味着在拖动滑块手柄时,该函??数调用太频繁。 这会导致性能问题。

当前伪指令:

Slider.onSlide: trigger function ValueChange(V)
function ValueChange(V) {Variable=V; other code;};

我只想更改自最后一次更改以来已过去的毫秒数(300)的值。 这将大大提高性能。

此处的目的是减少滑动时触发ValueChange(V)的次数。 这里只有时间延迟是行不通的,这一点很重要;

  1. 即使最后一个滑动位置在X秒数内,也始终设置滑块的最后一个值。 (尽管可以在X秒后而不是立即设置)

  2. 该值将更改为最新的滑块位置值,而不是X之前的秒数的滑块位置值。

  3. 我认为如果上述两项检查均通过,则需要一个中间函数,然后调用ValueChange(V)。

我希望这是有道理的……真的需要帮助……对于我欠发达的大脑来说,它太复杂了……真的! :D

在此先感谢,诺曼。

PS:由于我有可用的库,因此也欢迎使用jQuery解决方案。

每次更改时,将值存储在变量中,并使用以一定间隔运行的函数来检查值是否已更改:

var currentValue, lastValue;

function ValueChange(V) {
  currentValue = V;
};

window.setInterval(function(){
  if (lastValue != currentValue) {
    lastValue = currentValue;
    Variable = currentValue; other code;
  }
}, 50);

我选择了50毫秒的间隔。 因为这是动画的合理间隔。 您可以尝试使用300毫秒的间隔,但是每秒只会更新3次,这看起来可能有些生涩。

  相关解决方案