jquery.cookie用法及其注意点
Posted 心欲无痕
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jquery.cookie用法及其注意点相关的知识,希望对你有一定的参考价值。
jquery.cookie是一个轻量级的cookie插件,由于已被封装好,可拿来即用。
基本的创建、读取、删除见另一篇文章 浅谈localStorage、sessionStorage 与cookie 。
从名字上就可以看出jquery.cookie是依赖于jquery的,所以在使用jquery.cookie的时候,应该先引入jquery文件,再引入jquery.cookie文件。
创建cookie: $.cookie(\'name\', \'张三\')
然后访问的时候使用$.cookie(\'name\')就行。
但是,如果想要一次性存入多个数据呢?假如想将一个对象{‘name’: \'张三\', \'age\': \'45\', \'sex\': \'男\'}存入名为person的cookie中,该如何操作呢?
像这样行吗? $.cookie(\'person\', {‘name’: \'张三\', \'age\': \'45\', \'sex\': \'男\'}) 。虽然这样能创建成功,通过 $.cookie(\'person\') 也能够获取到结果:
[object Object]。然而当使用 $.cookie(\'person\').name 来获取时,结果却是undefined。可见,这样是不可行的。
原因在于,cookie本质上是一个txt文本,因此只能够存入字符串,对象通常要序列化之后才能存入cookie,而取的时候要反序列才又能得到对象
因此,在存入的时候可以这样写, $.cookie(\'person\', JSON.stringify({‘name’: \'张三\', \'age\': \'45\', \'sex\': \'男\'})) ,然后获取的时候再将其反序列化,通过
JSON.parse($.cookie(\'person\')).name 就可以获取成功。
很坑爹有木有。
再来说说注意事项:
(1)、在使用jquery.cookie的时候是需要在服务器下使用(可以使用tomcat、appserve或者sublime Text等),如果只是在本地的一个静态文件中使用jquery.cookie,然后直接通过浏览器打开,会发现结果是undefined,这个问题搞得我一度怀疑人生。
(2)、当没有指明cookie有效时间时,所创建的cookie有效期默认到用户关闭浏览器为止,因此也被称为会话cookie
以上是关于jquery.cookie用法及其注意点的主要内容,如果未能解决你的问题,请参考以下文章
从头认识java-15.2 Collection的经常用法-注意点
String类的基本用法与注意点,StringBuffer类的用法