了解HTML5的朋友们应该都知道它较HTML4有很多改进,也新增了很多特性,而本地存储Local Storage就是其中一种。但是目前不少网站使用Local Storage技术的并不多,应用不是太广泛。
什么是Local Storage?
Local Storage作为HTML5的本地存储方案,它适合做一些离线数据的存储,在Local Storage之前如果要本地存储大家选择的就是Cookie,而Cookie存储数据容量很小(4K左右),而且Cookie会作为请求头的一部分传递到服务器端,所以Cookie太多的话会影响请求速度的!
而Local Storage本地存储和Cookie不同,它可以存储大量数据(5M左右),所以对于较大的数据建议大家使用Local Storage来存储。
Local Storage的优点
Local Storage本地存储具有很多优点,最主要的有:
1、存储容量大
与Cookie相比,虽然Local Storage不同浏览器的支持程度不同,一般情况下它可以存储5M左右的数据。
2、在客户端存储不会影响服务器端
Local Storage存储在客户端浏览器中,与Cookie不同的是它不会和服务器端进行通信。
3、遵循同源策略,安全性高
它也有同源策略,不同站点是无法共用Local Storage的,所以安全性还行。
4、永久性存储,无过期时间
和Cookie不同的是,Local Storage数据是永久性存储的,只要用户不主动清理是不会过期的,存储时间长。
为什么静态资源不适合存储在Local Storage中?
如上面所说,Local Storage有那么多的优点,那在现实开发中为什么没有人把CSS和JS这类文件存储到Local Storage中呢?其实也就是Local Storage的特性使得它不适合存储文档内容,为啥呢?偶总结的原因主要是:
1、Local Storage是存储在硬盘上的,大文件I/O操作性能并不好
大家说Local Storage里存储的都是字符串类型的数据,如果存储的内容过多则内存空间消耗较大,页面容易卡顿。
2、浏览器支持程度不同
不同浏览器对于Local Storage的支持程度不同,如果还要对不同浏览器做兼容处理,那代价就大了。
3、客户端存储并不可靠
如果把CSS/JS等静态资源存储在客户端,那意味着用户可以随意修改Local Storage的内容,万一用户把它清空了那页面显示就会出问题。
4、客户端数据更新是个问题
如果把静态资源存入本地存储中,万一这些静态资源更新了,那客户端无法有效的更新,这个问题就很严重!
5、用户体验差
如果将静态资源存入Local Storage中,那大家在文档加载后利用JS来读取Local Storage中的CSS或者JS,然后再重新填充到页面中,这样会阻塞一些请求同时页面显示体验差。
以上就是偶的观点,对于这个问题大家是怎么看待的呢?欢迎在下方评论区交流 ~ 偶是科技领域创作者,十年互联网从业经验,欢迎关注偶了解更多科技知识!