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