javascript - Cookies 在新的密钥插入时被驱逐
问题描述
有一些cookie,如语言、市场等。这对于网站的某些功能是必不可少的。
最近我观察到,在导航时,所有 cookie 都被清除,导致应用程序中断。
在应用程序中,我们正在使用一些分析库,它们在我们的应用程序的同一域中创建大量 cookie。我可以看到,一旦 cookie 数量接近 40,所有旧 cookie 都会被驱逐(cookie 大小和浏览器数量有限制)。
有没有办法告诉浏览器不要清除那些必要的 cookie?
更新:找到了它的根本原因,它是分析库 (GTM),开发人员在其中创建了一些用于跟踪目的的 cookie。已经要求他们转移到会话存储,现在它工作正常。
解决方案
不幸的是,跨浏览器的行为是不可预测的。
您可以尝试的一种解决方案是在添加/编辑 cookie 之前检查当前 cookie 大小是否超出限制。获取 cookie 大小的信息:获取给定标题的网站的总 cookie 大小
大多数浏览器将每个域的 cookie 限制为大约 4096 字节(或 4kB) - 或最多 50 个 cookie,具体取决于每个 cookie 的大小。
推荐阅读
- python-3.x - Numpy 不会将临时变量添加到向量的某些元素
- java - @Notblank 注释不显示消息
- reactjs - Mobx React 与 Material Grid
- ios - Xcode 11.3 中的“无法为未定义的类定义类别”错误,无法访问源文件
- php - 在幂等情况下通过服务更新实体的最佳方式?
- php - PHP 使用字符串创建具有命名空间的类
- python - Django 3.0.4 兼容六包
- azure - 按部署名称或标签选择器过滤 Kubernetes 事件
- swift - 如何在 swift ui 中显示两个警报,一个接着一个
- node.js - 在 AWS EC2 上反应前端?