jQuery的cleanData函数的目的是什么?

What is the purpose of jQuery's cleanData function?

本文关键字:是什么 函数 cleanData jQuery      更新时间:2023-09-26

在研究jQuery源代码时,我偶然发现了cleanData-函数几次:jQuery.remove() 调用它。其他功能也是如此。在删除 DOM 元素之前调用cleanData的目的是什么?

jQuery的remove()方法是否优于像这个小提琴这样的简单(removeChild)方法?如果是这样,为什么会这样?该代码是否会导致内存泄漏?

删除之前清除的数据是什么?jQuery之外还有什么用例吗?

对于从 jQuery 方法获取事件处理程序、数据或执行某些其他操作的元素,jQuery 将为该元素创建一个jQuery.cache条目。

元素本身获取一个属性,该属性保存其在 jQuery.cache 中的条目的键。这是链接元素和数据的唯一内容。

所以当一个元素要被删除时,jQuery需要使用元素上的键来查找jQuery.cache中的条目,然后需要销毁相关数据。如果它不这样做,就会有内存泄漏,因为一旦元素消失,就无法知道应该删除jQuery.cache数据。

因此,如果要使用本机.removeChild()删除和销毁元素,则将销毁指向该数据的唯一链接。这就是为什么你必须不幸地使用jQuery来删除所有元素,以及为什么你不应该在jQuery旁边使用任何其他DOM库。