-1

cleanData在研究 jQuery 源代码时,我多次偶然发现-function:jQuery.remove() 调用它。其他功能也是如此。cleanData在移除 DOM-Element 之前调用的目的是什么?

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

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

4

1 回答 1

1

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

元素本身获得了一个属性,该属性保存了它在jQuery.cache. 这是唯一将元素和数据联系起来的东西。

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

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

于 2013-09-05T19:56:16.553 回答