关于localStorage的一些小细节

简单的介绍了一下localStorage的支持范围,来源限制等细节

关于localStorage,在简单不过的接口,getItem,setItem,removeItem,clear,key.这些大家都很了解,可是也有一些细节,如果不注意的话也是可能导致一些问题的。

支持范围

localStorage的支持范围比想象的要广很多,市面上手机端和PC端的浏览器,除开IE,几乎都支持(指从很低版本就开始支持),而一向拖后腿的IE,在IE8中也是支持localStorage的。所以,放心使用吧!以下是各浏览器下的支持情况:

IE FIREFOX SAFARI CHROME OPERA IPHONE ANDROID
8.0+ 3.5+ 4.0+ 4.0+ 10.5+ 2.0+ 2.0+

来源限制

localStorage对来源的认定是根据以下规则:协议+域名+端口

协议

http:// 里面的数据和 https:// 里面的是分离的

所以http://www.demo-domain.com/下面localStorage里面的数据,在https://www.demo-domain.com/里面是没法访问到的

域名

域名是必须完全一致的,下属的二级,三级域名都是没法访问根域名下面的数据的。

所以http://t.www.demo-domain.com/是没法访问到http://www.demo-domain.com/页面里面localStorage的数据

端口

这个比较少见,大部分对外公开的网站,都是默认的80端口。同域名和协议,但是端口不同的页面,也是没法共享localStorage的数据的

比如:http://www.demo-domain.com:8080/ 页面是没法访问 http://www.demo-domain.com/ 页面中的localStorage数据

浏览器的“模式”

现在很多浏览器都提供了“匿名访问”,“安全模式”,“隐身窗口”等等功能。在这种情况下,浏览器都是会重新建立一个新的localStorage,所以这些模式下的页面是没法访问在正常模式下的页面中的数据。

借鉴的文章地址:http://htmlui.com/blog/2011-08-23-5-obscure-facts-about-html5-localstorage.html

作者: happyWang

Hello, the beautiful world

发表评论