当前位置: 首页 > 面试题库 >

当angular开始销毁时,我们是否需要在指令中取消绑定事件监听器?

杜禄
2023-03-14
问题内容

我的应用程序中有大量内存泄漏,但是我还没有找到原因,这就是背景。

  • 我正在使用AngularJS + JQuery(插件)
  • 许多监听器的绑定如下:

$(element).on(“ keyup”,function(){});

所以问题是

我是否需要按照以下说明在指令中取消绑定这些侦听器?

scope.$on("$destroy", function() {
    $(element).off();
});

顺便说一句,您通常如何发现Web应用程序中的内存泄漏?我使用chrome的配置文件(请参阅此处对内存性能进行性能分析),但无法跟踪内存泄漏的代码。你有什么建议吗?

非常感谢!


问题答案:

范围销毁的Angular文档意味着您确实需要删除DOM事件。

http://docs.angularjs.org/api/ng.$ro​​otScope.Scope#$destroy

请注意,在AngularJS中,还有一个$ destroy jQuery事件,该事件可用于在从DOM中删除元素之前清除DOM绑定。



 类似资料:
  • 问题内容: 我有使用$ on绑定事件的指令,在销毁作用域时是否需要删除该绑定,或者它是自动完成的?还需要致电$ element.off吗? 问题答案: *由于视图中的端到端绑定,当 *监听器 失去其外观时, 监听器将被自动销毁/清理 。注意,绑定不会发生这种情况。您还可以查看AngularJS的$ scope文档 。 用几句话回答: 将被自动销毁。 您需要手动销毁。 文档说明: 范围销毁-当不再需

  • 角度5 我遇到的问题是,当我离开一个组件时,该组件仍在监听服务订阅更新并对其采取行动。

  • 我正在使用mockito作为junit。在创建对象的模拟时,我有疑问。我有一个名为DBConnect的类。我需要数据库属性,如dbname、凭据等。PatientDetails使用这个类。现在,当我为PatientDetails编写junit时。所以我使用以下代码。 用这个我不能得到正确的结果。

  • 问题内容: 我正在学习JPA,有一个问题: 在哪些情况下,我们的应用程序需要多个? 我知道的两种情况如下: 当我们的应用程序是多线程应用程序并且一个以上的线程需要JPA事务时,因为它不是线程安全的,因此每个线程需要一个线程。 当任何一个线程需要多个并发事务时,由于和之间存在一对一的关系,因此在该线程中我们需要多个。 Q1。当我们需要多个条件时,还有其他情况吗? Q2。据我了解,每个Percentn

  • 我阅读了一些文章,发现:默认情况下,预启用了以下HttpMessageConverters实例: ByteArrayHttpMessageConverter-转换字节数组 StringHttpMessageConverter-转换字符串 ResourceHttpMessageConverter-转换org.springframework.core.io.resource用于任何类型的八位组流 So

  • 问题内容: AFAIK,您无需在onclick中指定协议: 坏 好 今天,我在GoogleAnallytics上注意到他们正在使用它: 这个例子是完全错误的,还是有理由指定除?以外的其他内容? 问题答案: 这里的一些响应声称“javascript:”前缀是“过去的遗留物”,这意味着浏览器有意对它进行了特殊处理,以实现向后兼容。是否有确凿的证据证明是这种情况(有人检查过源代码)吗? 对我来说,它的意