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

标签 javascript asp.net vb.net

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

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

我的意思是,cookie 仅在客户端 js 上无法访问,但可以在我们的 asp.net/vb 代码隐藏中正常读取。

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

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

最佳答案

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

每个域您最多只能使用 4KB 的 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

关于javascript 无法在 ie7 中获取/设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421258/

相关文章:

javascript - 在 iOS 应用程序中设置 cookie 并从 Safari 读取该 cookie

jquery - asp.net 如何让两个 <ul> 面对面

vb.net - 如何在vb.net中获得颜色的RGB数值

vb.net - 电子邮件换行符不起作用

c# - VB.NET 泛型到 C# 语法

javascript - react : setState is not rendering the page again

Javascript 调用函数乱序

javascript - 如何将文本和图像淡入淡出作为幻灯片?

asp.net - 使用 SQL Server 在 Web 应用程序中进行审计跟踪

asp.net - 在 Repeater 中设置控件的复杂成员