Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/453.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度事件(ng keydown)内存泄漏_Javascript_Angularjs_Performance_Memory Leaks_Dom Events - Fatal编程技术网

Javascript 角度事件(ng keydown)内存泄漏

Javascript 角度事件(ng keydown)内存泄漏,javascript,angularjs,performance,memory-leaks,dom-events,Javascript,Angularjs,Performance,Memory Leaks,Dom Events,我正在创建一个输入,如果您按住键“向上”或“向下”,它会增加或减少该输入中的数值 对于键事件,我使用ng keydown指令更新绑定到输入本身的$scope.value 问题是我握钥匙的时间越长,握钥匙的速度就越慢 它没有我自己的实现那么慢,我自己的实现也有一些其他的东西,但是我已经在chrome开发工具中发现了它(JSFIDLE)的内存泄漏,以揭示相同的模式 这不仅仅是ng键控,其他事件也像这样行为不端() 发生了什么事,我怎样才能避免 编辑进行比较 这个问题的解决方法帮助我在输入字段中

我正在创建一个输入,如果您按住键“向上”或“向下”,它会增加或减少该输入中的数值

对于键事件,我使用ng keydown指令更新绑定到输入本身的$scope.value

问题是我握钥匙的时间越长,握钥匙的速度就越慢

它没有我自己的实现那么慢,我自己的实现也有一些其他的东西,但是我已经在chrome开发工具中发现了它(JSFIDLE)的内存泄漏,以揭示相同的模式

这不仅仅是ng键控,其他事件也像这样行为不端()

发生了什么事,我怎样才能避免


编辑进行比较


这个问题的解决方法帮助我在输入字段中添加了一个去盎司。它使角度过程数据按间隔排列,从而产生更多的流体

<input type="number" ng-model="number" ng-model-options="{ debounce:500 }">


您可以在这里阅读更多内容:

这很有趣,但对我来说,一段时间后记忆就会恢复正常。看起来垃圾收集被延迟了一段时间,直到到达某个点并被触发。你能修改一下你的例子来说明它是如何滞后于性能的吗?如果你在两次输入之间强制垃圾收集几次,它每次都会下降到相同的水平吗?我看不到与你的显示相同的内存使用模式,也看不到响应速度随着我保持时间的延长而变慢。我看到了与Matthew Foscarini相同的模式。@MathewFoscarini我添加了chrome如何处理类似的事情。每次angular处理事件。它必须对当前范围执行摘要循环,并向上传播范围堆栈。重复此操作,直到没有观察者指示任何其他更改。我假设这会导致创建许多JS对象。当摘要存在时,浏览器将触发下一个事件,并重复此过程。不能在javascript中强制使用GC。所以我不知道你能做什么。我已经了解到,如果将jQuery事件与Angular一起使用,那么事件绑定可能会导致DOM元素持久化,应该删除这些元素,但这不是问题所在。
<input type="number" ng-model="number" ng-model-options="{ debounce:500 }">