繁体   English   中英

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

[英]javascript can't get/set cookie in ie7

我必须在2个Cookie字典/键式Cookie中存储用户的首选项,以便在应用程序上隐藏每种表单的某些部分。

看来IE7已达到javascript中 Cookie的数量或大小的一定限制。

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

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

我应该如何在不触发回发的情况下获取和设置Cookie? 我曾考虑过将cookie onload的值存储在文本框中,但是我不知道何时读回并更新cookie。

替换答案,因为上一个答案不适用,并且评论变得冗长。

根据浏览器的不同, 每个域最多只能有4KB Cookie数据。

RFC指出,浏览器至少需要支持20个cookie(IE可以支持50个cookie),并且至少需要支持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

至于设置和读取它们,请查看用于处理Cookie的jQuery插件:

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM