本地存储和Internet Explorer 9冒险

Local storage and Internet Explorer 9 adventures

本文关键字:Explorer 冒险 Internet 存储      更新时间:2023-09-26

我在使用localStorage的Internet Explorer 9中遇到了一个有趣的问题。我在我的web项目中使用i18next库进行客户端本地化,作为本地化存储,我们决定使用localStorage。我们在用户第一次访问时加载所有本地化(一种语言的整个本地化~450kb)。除Internet explorer 9外,所有浏览器都运行良好。经过一段时间并在语言之间切换后,当它试图从服务器端加载本地化时,我开始收到错误"SCRIPT5022: DOM Exception: QUOTA_EXCEEDED_ERR (22)"。当我尝试-localStorage.remainingSpace时,它返回:120776

但是,当我尝试使用命令-JSON.stringify(localStorage)查看localStorage中存储的内容时,它会返回-"{}"。因此,localStorage中没有存储任何内容,但它写道,只有120kb是可用的。当我在任何其他网站上尝试时,对于命令-localStorage.remainingSpace,它会显示-5000000。此外,localStorage.clear()也无助于停止接收该消息-"SCRIPT5022: DOM Exception: QUOTA_EXCEEDED_ERR (22)"

问题是——"为什么internet explorer 9认为localStorage几乎已满,而它不包含任何数据?"

谢谢你的预付款。

知道IE有多令人沮丧。我遇到了类似的问题。

试试这个jquery插件。另请查看此IE9问题是否与您的用例匹配插件本身尝试了各种各样的失败,而没有设置一个真正的cookie。他们在一个无缝的API中集成了几个持久性机制,无论浏览器如何,只要它在他们支持的列表中,它就会在大小限制内工作。

[如果450kb不适合,请尝试创建一个由服务器支持的回退,主动从本地存储中提取丢失的所需密钥,这样就不会传输整个450k字典。]

祝你好运!