2011-01-24 31 views
0

jQuery .data()和浏览器cookies似乎都做了相同的工作,保存信息供以后使用。使用另一个有什么优势? .data()似乎是快速和容易的。jquery data()vs cookies

回答

8

jQuery.data()和饼干有很大的不同:

  • 饼干跨请求生存,jQuery.data()只有它在
  • jQuery.data出具的文件的寿命()即可存储任意对象,而只能将可序列化的对象作为文本存储在cookie中(例如,不能直接在Cookie中存储DOM元素)
  • jQuery.data()附加到DOM元素,而cookie附加到域或域的子路径

因此,通常使用jQuery.data()来存储jQuery代码不同部分使用的数据(例如,设置,缓存值等),并且cookie用于存储永久用户信息(例如会话信息)。

+0

很好地解释。谢谢 – Hussein 2011-01-24 22:20:23

2

数据在请求之间不持续。所以如果你用.data()保存了一些东西,然后用户点击一个链接,你就不会再有保存的数据了(不像Cookie,它会一直存在)。

1

.data()是 - 正如Jakub已经说过的 - 在cookie请求之间不持久(甚至可以给它们一个过期时间!)。

但是,还有一个很大的区别:.data()设置在元素上,如果没有元素(或包含它的jQuery对象),而Cookie是文档范围内的简单key =>值映射,则无法轻松检索。

哦,你不能在cookie中存储复杂的数据(数组,对象),而不会以某种方式序列化它们(JSON可以完成这项工作)。