关于JavaScript的cookie值的问题
我在做一即时聊天系统,为了减轻服务器端的压力,我想用JS把用户的聊天记录写入客户端的的cookie里面document.cookie="ChatMsg="+MsgOld + escape(msgtt)。
但是有一问题,当cookie里的记录慢慢增多时,比如10条后,它却会自动把以前的记录全部清空;这样用户就看不到双方以前的记录了。
我想问下,这是不是cookie值的默认容量的问题,有哪位知道可不可以设定cookie值的最大容量?谢!
参考答案:大多数浏览器只允许每个站点保存 20 个 Cookie。如果试图保存更多的 Cookie,则最先保存的 Cookie 就会被删除。还有些浏览器会对来自所有站点的 Cookie 总数作出限制,这个限制通常为 300 个。同时大多数浏览器支持最多可达 4096 字节的 Cookie。
利用带子键的单个 Cookie,站点的 Cookie 数量就不会超过 20 个的限制。此外,一个 Cookie 会占用大约 50 个字符的基本空间开销(用于保存有效期信息等),再加上其中保存的值的长度,其总和接近 4K 的限制。如果使用五个子键而不是五个单独的 Cookie,您可以省去四个 Cookie 的基本空间开销,总共能节省大约 200 个字节。
要创建带子键的 Cookie,您可以使用用于编写单个 Cookie 的各种语法。以下示例显示了编写 Cookie 的子键的一种方法,其中的每个 Cookie 都带有两个子键:
Response.Cookies("userInfo")("userName") = "mike"
Response.Cookies("userInfo")("lastVisit") = DateTime.Now.ToString
Response.Cookies("userInfo").Expires = DateTime.Now.AddDays(1)