我必须在 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 的目的。
关于javascript 无法在 ie7 中获取/设置 cookie,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7421258/