gpt4 book ai didi

jquery - 使用 data() 分配的 jquery 数据可以保存多久?

转载 作者:行者123 更新时间:2023-12-01 02:33:47 25 4
gpt4 key购买 nike

我通过我正在创建的jquery将一些数据分配给html对象,问题是当我从插件调用方法时,我分配的数据不再在对象中。

最佳答案

了解 .data() 的工作原理有助于了解数据的生命周期。当您使用 .data() 存储某些内容时,它会进入 jQuery 的内部 javascript 数据结构。因此,在这方面,它只是一个 javsacript 变量,并且与任何其他 javascript 变量一样存在。

这意味着一旦您离开页面,它就完全消失了 - 就像所有其他 JavaScript 变量一样。

删除数据的另一种方法是某些 JavaScript 代码专门从数据结构中删除数据。通常只有当您使用有意处置 DOM 对象的 jQuery 方法时才会发生这种情况。这可以通过 $(elem).remove()$(elem).html("some html) 以及任何其他从DOM。由于这些方法从 DOM 中删除对象,jQuery 会“清理”与这些元素关联的 .data() 信息。一个特定的异常(exception)是 .detach() 会从 DOM 中删除一个元素,但不会删除它的 .data() 信息。这样做的目的是为了允许您从 DOM 中删除它,但可能会保留它的状态,以便您可以将其放回到 DOM 中的其他位置或稍后。

注意:如果不使用 jQuery 函数(例如 .removeChild() 或通过赋值给 .innerHTML)从 DOM 中删除 DOM 元素,jQuery 将不会知道您已经删除了这些 DOM 元素,并且 .data() 信息不会被清理 - 它本质上只是浪费内存空间。除了消耗一些额外的内存之外,它不会造成任何危害。如果 .data() 信息包含对其他 javascript 或 DOM 元素的引用,则可能会导致更大的内存泄漏。

如果您使用.data(),它会创建一种情况,您希望坚持使用 jQuery 方法来处理任何可能导致 DOM 元素被删除的情况。通常使用 jQuery,您可以自由地混合/匹配纯 javascript 和 jQuery,但在这种情况下您不应该这样做。

关于jquery - 使用 data() 分配的 jquery 数据可以保存多久?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10020388/

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