首页 理论教育HTML5实战宝典:客户端存储概述,存储方法和属性详解

HTML5实战宝典:客户端存储概述,存储方法和属性详解

【摘要】:Cookies从JavaScript出现之初就一直存在,所以在Web上存储数据并不是个新概念。localStorage对象负责存储长期的数据。这两种存储对象具有相同的方法和属性。为了获得一致性,本书在所有的示例中使用的都是localStorage对象。HTML5 Web存储的浏览器支持十分实用,但是,较旧的浏览器需要在使用之前检查Web存储支持的浏览器。这种检查非常简单,可以使用一个简单的条件语句来查看HTML5存储对象是否已经定义。

Cookies从JavaScript出现之初就一直存在,所以在Web上存储数据并不是个新概念。不过Web存储是数据存储的一种更强大的版本,它可提供更多的安全性、易用性和更快的速度。在Web上还可以存储相当大的数据,具体的大小取决于Web浏览器,但通常都在5MB到10MB之间。这对于一个HTML应用程序而言已经足够大了。另一个好处是此数据并不会在每次出现服务器请求时都被加载。唯一的限制是不能在浏览器之间分享这些Web存储,即如果在Safari中存储了数据,那么该数据在Firefox中是无法访问的。内置到HTML5中的Web存储对象有两种类型:

sessionStorage对象负责存储一个会话的数据。如果用户关闭了页面或浏览器,则会销毁数据。localStorage对象负责存储长期的数据。当Web页面或浏览器关闭时,仍会保持数据的存储,当然这还取决于浏览器设置的存储量。这两种存储对象具有相同的方法和属性。为了获得一致性,本书在所有的示例中使用的都是localStorage对象。下面,将了解Web存储的强大功能,以及它成为优于Cookies的一种存储方式的原因。我们还将探索基本的Web存储概念、HTML5 Web存储方法和浏览器支持。

几乎所有主流浏览器均支持Web存储特性,这些浏览器包括Firefox、Chrome、Safari、Opera和Microsoft IE 8.0以上版本。但是IE 7和更早版本不支持Web存储。(www.chuimin.cn)

HTML5 Web存储的浏览器支持十分实用,但是,较旧的浏览器需要在使用之前检查Web存储支持的浏览器。这种检查非常简单,可以使用一个简单的条件语句来查看HTML5存储对象是否已经定义。如果已经定义,就可以放心进行Web存储脚本编写。如果未定义,而数据存储又是必需的,则需要采用一种备选方法,比如JavaScript Cookie。

以下代码显示了一种简单的为Storage对象进行浏览器检查的方式。