问题标签 [debouncing]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
knockout.js - KnockoutJS - 我如何去抖动点击?
我想更改按下按钮时默认发生的情况 - 我需要防止按钮被双击。
一种选择是将按钮绑定到的函数包装在下划线的 _.once() 或 _.throttle() 中,但如果在堆栈的更高层处理它会更好。
所以我发现了这个问题:knockoutjs overriding bindinghandlers和答案中引用的小提琴(http://jsfiddle.net/rniemeyer/PksAn/)并试图用它做点什么。下面是小提琴的原始代码。
我尝试用 _.throttle() 包装 WrappedValueAccessor,也尝试包装嵌套函数,但结果表明 valueAccessor() 每次都返回一个新函数,我认为这就是我应该包装的。
该代码在这里:(来自从第 2043 行开始的 knockout-2.2.1.debug.js)
这意味着我必须进入淘汰赛的内部,这似乎是错误的。
所以我的问题是,我的想法是正确的还是方法完全错误。有一个更好的方法吗?
javascript - 来自多个事件的反跳动作
如何消除可以从多个事件中启动的动作?这是一个仅用于演示行为的示例:http: //jsfiddle.net/eXart/2/
如果您在文本框中输入一些文本并单击它,您会看到“stuff”出现两次而不是一次,因为每个事件都获得了它自己的 debounce 实例。您如何跨事件共享去抖动实例?
verilog - 如何在verilog中实现去抖动
我正在使用 DE2 板的按钮作为异步复位,但它无法工作。这是我的 n 位寄存器模块:
但是,重置无法正常工作。当我按下按钮时它什么也不做。我认为这是由按钮弹跳引起的。那么如何在 Verilog 中实现去抖动呢?
ember.js - 带有立即参数的 Ember.run.debounce 无法按预期工作
如果您Ember.run.debounce
在immediate
参数设置为 true 的情况下调用,则它仅在 Ember.run.debounce
以前从未调用过时才有效(至少使用相同的上下文和函数参数)。“它有效”是指“它触发传递的函数”。
这是演示此行为的JS Bin 。
单击 div一次,等待 1 秒并按预期触发警报。但是连续的点击什么也没做。它只是第一次触发。如果您在 1 秒内多次单击,它不会显示任何警报窗口,因为debounce
被多次调用。如果您根本不使用该immediate
参数,那么一切都会按预期进行。
这真的是正确的行为还是我错过了什么?
angularjs - ng-ampere-debounce 似乎停止在 AngularJS 1.2 中工作
我一直在使用 jQuery / AngularJS 指令来消除 Firebase 支持的应用程序中的输入。它来自 Lars Gersmann 的帖子,效果很好:
http://orangevolt.blogspot.com.au/2013/08/debounced-throttled-model-updates-for.html
从 Angular 1.0.8 更新到 1.2 似乎打破了一切。每次指令触发时,$._data 函数不会从元素中提取事件,而是带回一个未定义的值,从而导致此错误:
TypeError: Object.keys 在 Function.keys (native) 的非对象上调用
它在这里定义:
AngularJS,甚至 jQuery 中是否发生了一些变化,不会像以前那样拉取这个元素的事件?
(旁注,我使用的是 jQuery 版本 1.8.3,它在 Angular 升级中没有改变)。
感谢任何可以对此有所了解的人!
button - 使用按钮增加七段
我的 fpga 是 spartan 3E-100 Cp132。我有四个按钮作为我的输入,我想通过使用它们来增加电路板 7 段上的四个数字。VHDL代码如下:
每个按钮都应将相应的 7 段数字(b1 --> 最右边的数字和 b4--> 最左边的数字)加一。问题是当我按下按钮时,它会完成这项工作,但不会将其增加一,而是增加一些任意数字。原因是它在时钟 2 的每个上升沿递增 1,并且由于该时钟的频率,它发生得太快。我怎样才能摆脱这个问题?我为按钮尝试了几个去抖动代码,但它们并没有太大帮助。我完全被困在这里。我的意思是应该有办法做到这一点,但是怎么做呢?顺便说一句,我在上面的代码中使用的去抖动代码是
因此,任何帮助将不胜感激,在此先感谢!
jquery - Ember.js 1.2.0 debounce 在 jquery 事件上没有按预期工作
我正在尝试在窗口的调整大小事件上设置去抖动,并且以前能够使用下划线和 jquery 如下:
我采取了这种想法并尝试将其应用于 Ember Ember.run.debounce
,如下所示:
事件监听器似乎根本没有触发......
angularjs - $debounce 遇到错误
在我的控制器中注入 $debounce 时,我遇到此错误:未知提供者:$debounceProvider <- $debounce
javascript - 使用去抖动隐藏基于屏幕高度的 DIV
我正在处理一个具有固定位置的简单侧导航的页面,设置为顶部:30%。我需要做的是在页面底部我想淡出菜单,这样它就不会与页脚重叠,下面的代码有效,但我认为它正在检查滚动,需要很长时间才能计算你快速向下滚动。
是否有更快/更轻量级的方法来计算何时隐藏侧导航?我不熟悉去抖动,但这有帮助吗?
元素:
示例页面:http ://hsb1.hubspot.com/profile-page-template
脚本:
javascript - 限制 JavaScript 函数调用,但需要排队(不要丢弃调用)
函数如何限制其调用的速率?如果调用过于频繁,则不应丢弃调用,而是要排队并及时间隔,相隔 X 毫秒。我已经查看了throttle和debounce,但是它们丢弃了调用,而不是将它们排队等待将来运行。
process()
有比在 X 毫秒间隔上设置方法的队列更好的解决方案吗?JS框架中有这样的标准实现吗?到目前为止,我已经查看了underscore.js - 没有。