草庐IT

Debounce

全部标签

javascript - 首先触发的去抖动函数然后对后续操作进行去抖动

到目前为止,我所见过的每个去抖动函数示例都会防止某个Action在指定的时间跨度内发生多次,然后在指定的时间跨度过去后执行该Action一次,然后重置计时器。例如,AngularMaterial中包含的$mdUtil.debounce函数。我正在寻找的是一个去抖动函数,它立即执行操作,然后阻止后续多个操作触发,直到计时器重置。这样做的好处是,用户不必等到去抖动时间过去后才采取行动,同时仍能实现去抖动Action的目标。有没有人见过或幸运地创造了一个?更新经过更多考虑,去抖动函数应该立即触发操作,然后,如果在去抖动时间跨度内再次调用去抖动函数,它应该触发在重置计时器之前第二次执行操作,以

javascript - Vue.js 和 debounce (lodash/underscore) 兼容吗?

跟随answer到我的questionondebouncing我想知道vue.js和lodash是否/underscore兼容此功能。答案中的代码varapp=newVue({el:'#root',data:{message:''},methods:{len:_.debounce(function(){returnthis.message.length},150//time)}})Length:{{len()}}当有连续输入时确实会保留我的函数的执行,但是当它在一些不活动后最终执行时,function()的输入似乎是错误的。启动上面代码后的实际例子:快速的字符序列,然后没有事件:添加了

javascript - 使用 debounce 监听多个范围的值变化

目前,我使用下面的代码来监听Sheet1!A1:B2的变化:functionaddEventHandler(){Office.context.document.bindings.addFromNamedItemAsync("Sheet1!A1:B2","matrix",{id:"myBind"},function(asyncResult){Office.select("binding#myBind").addHandlerAsync(Office.EventType.BindingDataChanged,onBindingDataChanged2016);})}functiononBi

javascript - RxJS Debounce 优先级

我在想出这个流时遇到了问题。我正在寻找类似debounceTime但具有优先级的东西。因此,如果我有形状为{type:'a',priority:2}的事件。这些事件需要几秒钟的时间去抖动,但不是发出最后一个事件,而是发出具有最高优先级的事件。inputstream:------(a|1)--(b|3)---(c|2)-----------------------(a|1)-----------------outputstream:-----------------------------------(b|3)---------------------(a|1)-----我尝试查看其他运

javascript - 如何使用 Svelte 去抖动/节流?

所以我现在有:App.htmlimport{debounce}from'lodash'exportdefault{data(){name:''},methods:{debounce,asynchandleInput(event){this.set({name:awaitapiCall(event.target.value).response.name})}}}并得到错误UncaughtTypeError:ExpectedafunctionatApp.debounce。这来自Lodash,因此似乎没有通过Svelte的方法。额外额外编辑关于我目前如何实现它的额外背景:oncreate()

javascript - 使用 Underscore 的 _.debounce() 方法

我正在尝试使用UnderscoreJS和它的_.debounce()方法来停止在keyup事件上重复触发的回调函数。我这样做是因为每次您开始输入时,都会启动AJAX调用,因此为您输入的每个字符进行调用会非常昂贵(:这就是我使用方法的方式:onTypeEvents:function(selector,callback){return$(selector).on('keyup',function(event){varthat=$(this).val().trim();switch(event.keyCode){case8:if(that!==''){if(that.length>=2){r

javascript - Vue debounce 一个方法?

我知道Vue.js具有内置的功能来消除输入字段的抖动。我创建了一个slider来触发一个不使用输入字段的方法,我想知道我是否可以利用方法内部的去抖动功能。除了简单地向输入添加去抖动之外,是否有可能使用此功能?还是我需要为此编写自己的功能?我刚刚试过做这样的事情,但它似乎不起作用:this.$options.filters.debounce(this.search(),2000); 最佳答案 对于任何想知道如何做到这一点的人。我通过使用我发现的一个很棒的小片段修复了这个问题:我的数据中的属性timer:0去抖动功能//clearsth

javascript - jasmine.clock().tick() 不适用于 $timeout 和 debounce,但适用于 setTimeout

下面我有3个功能完全相同。每种调用setTimeout的方式不同,delay1()直接使用setTimeout,delay2()使用angularjs$timeout和delay3()使用lodashdebounce。它们都工作正常。问题出现在我用Jasmine测试的时候。setTimeout可以与jasmine.clock().tick()方法配合使用,但$timeout和debounce不适用't我有兴趣使用Jasmine进行去抖动。我知道我可以将$timeout.flush()与angularjs一起使用,但是$timeout和setTimeout在我使用的代码的其他地方给我带来

javascript - 在 debounce 函数中使用 requestAnimationFrame 是个好主意吗?

这是对我对requestAnimationFrame理解的检查。我需要debounce功能,因为每次调整窗口大小时我都在做一些DOM交互,我不想让浏览器过载。典型的去抖动函数每个时间间隔只会调用一次传递的函数;间隔通常是第二个参数。我假设对于很多UI工作,最佳间隔是不会使浏览器过载的最短时间量。在我看来,这正是requestAnimationFrame会做的事情:vardebounce=function(func,execAsap){vartimeout;returnfunctiondebounced(){varobj=this,args=arguments;functiondelay

javascript - Lodash _.debounce 具有用于独特参数变体的单独队列

我非常感谢lodash的去抖动和节流功能。我相信我很了解用例并且已经实现了数十次。但是,根据要求,带有参数的_.debounce函数可能会出现重大且难以捕获的错误。即:假设您有一个名为debounceFn的去抖动函数,它接受一个参数并且去抖动间隔为1000毫秒。100毫秒:debounceFn(1)200毫秒:debounceFn(2)300毫秒:debounceFn(2)400毫秒:debounceFn(1)500毫秒:debounceFn(1)子函数最终将以参数1调用。这对于您只关心最后一个值的调整大小事件非常有用,但是如果您需要根据参数单独的去抖动队列怎么办?也就是说,不是使用参