常见的浏览器端的存储技术

在客户端(浏览器端)存储数据有诸多益处,最主要的一点是能快速访问(网页)数据。(以往)在客户端有五种数据存储方法,而目前就只有四种常用方法了(其中一种被废弃了):

  • Cookies
  • Local Storage
  • Session Storage
  • IndexedDB
  • WebSQL (被废弃)

我在查阅资料的时候还发现其他4种

  • userData
  • GlobalStorage
  • Flash ShareObject
  • GoogleGear

下面总结一下这些存储技术的优缺点

1、Cookies

cookie会随着每次HTTP请求头信息一起发送,无形中增加了网络流量,另外,cookie能存储的数据容量有限,根据浏览器类型不同而不同,IE6大约只能存储2K。

优点

  • 能用于和服务端通信
  • 当 cookie 快要自动过期时,我们可以重新设置而不是删除

缺点

  • 增加了文档传输的负载
  • 只能存储少量的数据
  • 只能存储字符串
  • 潜在的 安全问题
  • 自从有 Web Storage API (Local and Session Storage),cookies 就不再被推荐用于存储数据了

2、Flash ShareObject

     这种方式能能解决上面提到的cookie存储的两个弊端,而且能够跨浏览器,应该说是目前最好的本地存储方案。不过,需要在页面中插入一个Flash,当浏览器没有安装Flash控件时就不能用了。所幸的是,没有安装Flash的用户极少。

缺点 :需要安装Flash插件。

3、Google Gear

Google开发出的一种本地存储技术。

缺点:需要安装Gear组件。

4、userData

IE浏览器可以使用userData来存储数据,容量可达到640K,这种方案是很可靠的,不需要安装额外的插件。

缺点:它仅在IE下有效。

5、localStorage

localStorage是Web Storage互联网存储规范中的一部分,现在在Firefox 3.5、Safari 4和IE8中得到支持。

缺点:低版本浏览器不支持。

6、sessionStorage

使用于Firefox2+的火狐浏览器,用这种方式存储的数据仅窗口级别有效,同一个Tab页面刷新或者跳转,都能获取到本地存储的数据,当新开窗口或者页面时,原来的数据就失效了。

缺点:IE不支持、不能实现数据的持久保存

7、globalStorage

使用于Firefox2+的火狐浏览器,类似于IE的userData。

缺点:仅在Firefox2+有效。

8、IndexedDB

IndexedDB 是一种更复杂和全面地客户端数据存储方案,它是基于 JavaScript、面向对象的和数据库的,能非常容易地存储数据和检索已经建立关键字索引的数据。

IndexedDB 的优点

  • 能够处理更复杂和结构化的数据
  • 每个’database’中可以有多个’databases’和’tables’
  • 更大的存储空间
  • 对其有更多的交互控制

IndexedDB 的缺点

  • 比 Web Storage API 更难于应用

总结:Flash shareobject是不错的选择,如果你不想在页面上嵌入Flash,可以结合使用

userData(IE6+)和globalStorage(Firefox2+)和localStorage(chrome3+)实现跨浏览器。

原文地址:https://www.cnblogs.com/jiayuexuan/p/7250373.html