前两天在项目中发现一个win8系统下,ie10中访问localStorage,直接在控制台发现有Error:拒绝访问。
觉得好扯淡,google了一下,原来有好多人都遇到过,其中,找到一个解决方案(严格来说,不算):
前两天在项目中发现一个win8系统下,ie10中访问localStorage,直接在控制台发现有Error:拒绝访问。
觉得好扯淡,google了一下,原来有好多人都遇到过,其中,找到一个解决方案(严格来说,不算):
文章写了都一年多了,一直没个合适的地方放,现在终于可以搬上来了。
背景
先看看各种本地存储的变革:
Cookies:浏览器均支持,容量为4KB
UserData:仅IE支持,容量为64KB
Flash:100KB
Google Gears SQLite :需要插件支持,容量无限制
LocalStorage:HTML5,容量为5M
现准备在项目中试图取代cookie的实现,基本分析如下:
每次和服务器端进行交互,cookie都会在请求中被携带,cookie过多,也造成带宽的浪费
cookie的容量很小,或许无法满足当今互联网的本地存储需求
在IE8+、Firefox3.0+、Opera10.5+、Chrome4.0+、Safari4.0+、iPhone2.0+、Andrioid2.0+等平台下,已经完全支持HTML5的LocalStorage
在IE7即以下版本中,可以使用UserData来代替cookie,而且同样比cookie保险
用户可能清cookie,但不见得知道去清UserData或者LocalStorage,这也增强了一道代码保险
到底用啥来取代?
UserData:仅IE可用
Flash:存储空间够了,也还挺好,可这玩意儿不是HTML原生的
Google Gears:存储空间没啥限制,就是得装额外的插件
HTML5-LocalStorage:官方建议每个站点可以本地存储5M的内容,非常大了
最后再分析一下现在咱们针对的浏览器:IE系列、FF、Chrome、Safari、Opera,外加双核的遨游、QQ浏览器、搜狗浏览器