Jquery data()存储

ANP*_*ANP 7 jquery data-storage

任何人都可以告诉我jquery data()存储数据的位置以及何时删除数据以及如何删除数据?

如果我用它来存储ajax调用结果会有任何性能问题吗?

例如:

$("body").data("test", { myData: 'abcd'});
Run Code Online (Sandbox Code Playgroud)

Anu*_*rag 28

所有数据都存储在jQuery名为的对象的属性中cache.记录$.cache控制台中的内容以查看与任何DOM元素关联的所有数据和事件.

jQuery将DOM对象与此缓存中的对象链接的方式是通过操作DOM对象.假设我们有一个输入元素

<input type="text" value="hello" />
Run Code Online (Sandbox Code Playgroud)

它有一个名为"foo"的数据键

$(e).data("foo", "bar");
Run Code Online (Sandbox Code Playgroud)

现在jQuery维护一个表单的随机字符串jQuery<current time in ms>,例如,jQuery1291790929680也可以访问$.expando.jQuery将此expando字符串添加为具有关联数据项或事件的每个DOM对象的键.所以上面输入元素的DOM对象将包含这个具有一些整数值的expando键,例如:

jQuery1291790929680: 4
Run Code Online (Sandbox Code Playgroud)

图4仅是随机示例,但是该数字表示$.cache对象中的索引,其中存储该DOM对象的关联数据和事件.所以给定这些信息,要检索上述输入元素的数据,我们可以间接写:

$.cache[4]["foo"]
Run Code Online (Sandbox Code Playgroud)

应该返回"bar",这是一种间接的写作方式$(e).data("foo").

一个图示的例子中的上述无义的:)


kob*_*obe 3

查看jquery中的内容

jQuery.data() 方法允许我们以一种安全的方式将任何类型的数据附加到 DOM 元素,从而避免循环引用,从而避免内存泄漏。jQuery 确保通过 jQuery 方法删除 DOM 元素以及用户离开页面时删除数据。我们可以为单个元素设置多个不同的值并稍后检索它们: