jQuery中$.cache的目的是什么?

前端之家收集整理的这篇文章主要介绍了jQuery中$.cache的目的是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我看到通过.on()注册的事件处理程序保存在$.cache中.
我也看到事件处理程序也被保存在$(elem).data()中.

$.cache中保存的对象是指注册事件的DOM节点.当DOM节点分离时,这会导致内存泄漏,这使得.off()调用成为必需.

我有一种情况,我不知道DOM节点(我附加到事件处理程序)何时被分离.虽然我可以在我的代码中保留对该DOM节点的引用,并调用.off()来清理它,但是看起来不太好,因为不清楚DOM节点何时被删除.

这样做最好的方法是什么?

解决方法

“What is the best way to do this?”

如果您要使用jQuery,则必须使用其API来删除元素,并且必须使用正确的方法,否则,如您所述,您将有内存泄漏.

如果您不知道DOM节点何时被删除,并且如果导致泄漏,我会假设这意味着您正在jQuery旁边使用另一个库.这不是一个好主意,因为这个原因.

你需要确保任何受jQuery影响的元素都被jQuery删除.还有一些数据存储在$.cache中,您没有明确设置.这意味着应该使用jQuery删除所有元素,而不是仅仅是您认为可能具有数据的元素.

“What is the purpose of $.cache in jQuery?”

将处理程序和其他数据与元素相关联.数据和元素之间的链接基本上是存储在元素上的expando属性上的序列号.

如果您删除没有jQuery的元素,$.cache中的关联数据是孤立的.

这种方法的目的是为了防止潜在的泄漏.不幸的是,它可能会造成更严重的泄漏.

原文链接:https://www.f2er.com/jquery/180246.html

猜你在找的jQuery相关文章