javascript – DOM更改时是否需要清理事件处理程序?

如果我发出删除正文
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请求并相应地更改屏幕通常没有问题.

点赞