作者liaosankai (低温烘焙)
看板Ajax
标题Re: [问题] 怎麽用jquery写入cookie阵列
时间Mon Dec 24 16:23:28 2012
※ 引述《knives ()》之铭言:
: 我查到jquery可以用
: $.cookie('name', 'test',{expires: 7});
: 写入cookie
: 那如果我的cookie是一个阵列的话
: 要对那个阵列做新增 移除 项目的话,又该怎麽做呢
: 我有google过,大部份的做法
: 都是先把原来的cookie抓出来,转成List 再去做add remove
: 再存回去
: 请问除了这样,还有更直觉的方法吗
: 谢谢回答
由於每个浏览器 cookie 有最大数量的限制,所以把阵列资料转成字串
存入 cookie 的方式比较有可能,而且每个 cookie 也有长度限制(约4096)
如果能先确定资料一定不会出现「某个字元」时,可以把它当成阵列串接
的字元
//存入
var data = ['资料1','资料2','资料3'];
$.cookie('data',data.join('#'),{expires: 3600});
//读取
var data = $.cookie('data').split('#');
另外一种方式,就是以物件进行JSON encode,这种可以不用考虑字元的问题
var config = {
"opt1": 123,
"opt2": "test"
}
//存入
$.cookie('config',JSON.stringify(config),{expires:3600});
//读取
var config = JSON.parse($.cookie('config'));
正常来讲,後者的方式会比较好,但要注意encode的物件,字串长度是否过长
可以把每个 cookie 当成微小型的资料表,不同类型的资料表最好能拆成多个
cookie 档,避免长度过大爆掉
之前的拙作就是用 cookie 去记录每个 user 的熟练记录资料
http://liaosankai.com/50yin
以上验经供你参考
--
欢迎来我的网志看看
@
http://liaosankai.pixnet.net/blog
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 219.71.188.102
1F:推 terrybob:推,好文,我下载了… 12/24 16:24
2F:推 s25g5d4:html5的web stoarge不知道有没有搞头 12/24 21:45
3F:→ s25g5d4:storage* 12/24 21:45