javascript无法在ie7中获取/设置cookie

时间:2011-09-14 18:35:21

标签: javascript asp.net vb.net

我必须在2个cookie词典/键控cookie中存储用户偏好隐藏应用程序中每个表单的某些部分。

似乎IE7已经达到了javascript 中cookie 的数量或大小的限制。

我的意思是cookie只能在客户端js上访问,但在我们的asp.net/vb代码隐藏中可以很好地读取。

需要读取这些cookie的值的函数必须在客户端,因为每次函数需要更新cookie时我都无法运行回发。

如何在不触发回发的情况下获取和设置cookie?我考虑过在文本框中存储cookie onload的值,但我不知道什么时候会读回来并更新cookie。

2 个答案:

答案 0 :(得分:3)

替换答案,因为上一个答案没有适用,而且评论的结果很长。

根据浏览器的不同,您总共只能获得4 KB的Cookie数据 每个

RFC指出浏览器需要支持至少20个cookie(IE确实需要50个),并且需要支持至少4KB。

然而,令人遗憾的是,大多数浏览器将4KB视为上限。因此,对于可能“在野外”使用的应用程序,这些cookie中所有数据的总和不应超过4KB。

此外,4KB显然是主观的,因为一些浏览器认为这意味着4095字节。奇怪的是。

无论如何,Chrome和Firefox的当前版本没有这个上限。 IE 9上限为每个域10,234字节,每个cookie 5,117(另一个奇数);然而,Opera和Safari仍然在过去。再说一次,如果您正在测试旧版本的IE,Firefox甚至是Chrome,那么您也会遇到4KB的限制。

就个人而言,我认为如果您的cookie大于4KB,那么您可能会遇到一些设计问题,因为您现在对您所拥有的最小连接施加了更大的压力:浏览器和服务器之间。如果您需要更多数据,那么您可能需要设置本地缓存服务器,将数据嵌入页面中,或者至少重新考虑使用Cookie的内容。

一个有趣的链接:http://browsercookielimits.x64.me

答案 1 :(得分:0)

就设置和阅读它们而言,请查看用于处理cookie的jQuery插件:

http://plugins.jquery.com/project/Cookie

如果您使用插件设置它们,它们将是可读的。