问题标签 [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.
node.js - 在nodejs中去抖串行命令?
我有一些通过高贵(它与具有串行服务的 BLE 设备交谈)将命令输入 nodejs 程序的东西,我想写一点去抖动/平滑。例如:
“如果 [x-command] 在 [x-mills] 下出现超过 2 次,则将标志设置为 true。”
有什么方法可以做到这一点?即:对样本使用数组?写超时?等等
javascript - 为什么在这种情况下超时变量是可共享的?
在这个问题的答案中,有人明智地指出
即使在 debounce 本身返回后,timeout 变量在每次调用生成的函数期间仍可访问,并且可以在不同的调用中更改。
这对我来说完全没有意义。由于 timeout 变量对于每次 debounce 调用都是本地的,它不应该是可共享的,不是吗?
ps 虽然是闭包,但每个调用应该有不同的闭包,它们只是在母函数返回后同时延长生命,但它们不应该互相交谈,对吧?
这是另一个问题的功能:
javascript - 在什么情况下使用上下文?
我正在研究该帖子以寻求去抖动的解决方案:
我正在努力想一个情况
是必要的,而不仅仅是使用
我认为 99% 的机会它只会被用作一个函数。在什么情况下它会附加到一个对象上?有人可以在这里举个例子吗?谢谢。
javascript - debounce 功能意味着鼠标滚轮上的 e.preventDefault 不再起作用
我正在使用鼠标滚轮改变页面的背景。我只想在 1000 毫秒内触发一次鼠标滚轮事件,因此我使用了去抖动功能。
在我添加去抖动功能并使用e.preventDefault()
它之前,它会阻止滚动工作。但是,现在我已经添加了 debounce 功能,这不再起作用,用户可以再次滚动页面。
请看下面的代码。
javascript - javascript中的实时对象创建和部分拆卸管理如何工作?
我想做的是加载javascript以在对象中创建一个方法库,并等到该对象第一次被使用,然后再实际定义或编译。我想在这个对象被完全定义之前建立对它的引用。当我在对象上的方法被定义之前第一次调用这个对象上的方法时(意味着对象实际上没有方法),我想定义对象然后调用该方法。如果对象上尚未定义“sayHello()”,有没有办法使用诸如“MyLibrary.sayHello()”之类的标准语法来做到这一点。我想它看起来像这样:
这只是伪代码。如果我添加一个清理方法,我可以将该对象返回到未初始化状态“{**handleAll:function(){/ noContext/}}”。我的应用程序/库以这种方式有一个存根和一个链接,可以在未定义状态下立即使用,在构建模块时,这对于减少对实用程序的引用数量很有用,比如帖子有一个功能菜单,这些功能由所有帖子共享, - 使用此处描述的机制,只有“活动帖子”/“焦点帖子”将引用该实用程序。更不用说激活和删除的能力-activate modules. 特殊的部分是模块已经预热,即使它们还没有引用它们,它们也准备好调用函数,它类似于实时绑定,但允许整个用户界面已经用已经存根的函数定义使用它们可用时的确切名称。对我来说,在这个模型中很容易找到默认和去抖动的控制机制。
我的问题是:这种类型的脚本是否可以在本地使用,或者我是否必须使用某种形式的编译,例如 TypeScript、CoffeeScript 或其他。我知道如果我将我想调用的方法作为参数传递给单例工厂,这是可能的。我最终希望整个应用程序能够优雅地降级未使用的功能而不会污染代码。
我所说的污染是什么意思:
arduino - Arduino按钮去抖动
我需要按钮去抖动方面的帮助。有时它会向串行链路发送两次相同的字符串,我不知道为什么。谁能帮帮我,哪里有问题?
先感谢您。
arduino - 简单程序:如何发送按钮的持续时间和时间?
我有 ESP8266 ESP-12E,微动开关连接到 GPIO13(和接地)。
我想发送(最好使用 HTTP POST,但如果选择不好,我愿意接受其他事情)按住按钮的持续时间和从 ESP8266 开始到按下按钮的时间的时间。
这是我到目前为止编码的内容:
但是,我的代码是错误的,因为我需要等待请求完成才能再次按下按钮。
我正在考虑使用中断将duration
和放入一些数组中,例如:startTime
然后我可以不断检查数组是否包含新的点击并将它们发送到服务器。
但我不确定这是否可行,而且我在 Arduino/C 方面的经验通常太少。任何帮助,将不胜感激。
android - 被采样的 Observable 充斥着大量事件
我正在尝试对 Android 中滑块的输出进行采样。
设置是:一个 PublishSubject mSubjTrim。在滑块的 OnTouchEvent 中,我调用 mSubjTrim.onNext(progress)
我从 mSubjTrim 创建了一个 observable
(它设置为秒,因为它更容易看到以秒为增量的输出记录。在实际使用中,这将是大约 50 毫秒的示例)
我像这样订阅 mObsTrim:
然而,调整滑块时的输出会产生以下输出
这几乎不起作用,因为样本被描述为有效。
我也试试
输出也不例外!
为什么我不能每秒获得一次修剪的更新?
编辑
所以我向监听器添加了一条日志消息,这样我就知道最后一次输入是在什么时候进行的
elm - 如何在 Elm lang 0.17 中实现去抖动自动保存?
我有以下情况:
当用户停止在文本区域中输入时,我想等待 2 秒,如果用户在这 2 秒内没有更改 textarea 中的任何内容,我想将 textarea 的内容保存到服务器。如果用户在这 2 秒内更改了 textarea 中的某些内容,我想重新启动等待超时。
在 JavaScript 中,我会像这样实现它