gpt4 book ai didi

javascript - 当 DOM 更改时,我是否需要清理我的事件处理程序?

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:17:50 26 4
gpt4 key购买 nike

如果我发出删除正文 HTML 并附加新 HTML 的 ajax 请求,我是否还需要删除添加到先前 HTML 的任何事件处理程序?

我注意到,如果我不这样做,一切都会正常进行。浏览器会释放内存和东西吗?如果我在不刷新浏览器的情况下执行数千个这样的 ajax 请求怎么办?我会发生内存泄漏吗?

最佳答案

如果添加 jQuery 事件处理程序:

  • 如果您使用 jQuery 删除/替换函数,它们将被清理
  • 如果您使用直接 DOM 函数,它们将不会被清理

在大多数函数文档中,您都有类似于 this one 的注释:

When .html() is used to set an element's content, any content that was in that element is completely replaced by the new content. Additionally, jQuery removes other constructs such as data and event handlers from child elements before replacing those elements with the new content.

如果你是连贯的,你将没有内存泄漏,你不必手动删除数据或事件处理程序。让一个页面保持打开几天并发出数千个 Ajax 请求并相应地更改屏幕通常没有问题。

关于javascript - 当 DOM 更改时,我是否需要清理我的事件处理程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21431994/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com