第9章 数据存储

Web应用中的数据可以保存到两个地方,一个是Web服务器,一个是Web客户端(用户的计算机)。这两个地方各自都有适合保存的数据。

Web服务器适合保存敏感信息,以及那些你不希望被别人篡改的数据。比如,在网上书店里购书时,所有交易信息都会保存到Web服务器上。你自己计算机中保存的数据只有那么一丁点,书店网站要用该数据判断你是谁(这样才能知道哪个购物车是你的)。即使有了HTML5,这种套路也不能改变——服务器安全、可靠、高效。

然而,服务器端存储也并非适合所有网站。有时候,把一些不太重要的信息放在用户计算机上相对会更方便。比如,把用户偏好(影响网页显示方式的设置)和应用状态(相当于Web应用某个瞬间的快照,保存后可以方便用户将来返回该状态)放在用户本地就比较合乎情理。

在HTML5之前,本地存储的唯一方案就是使用cookie。而最初发明cookie的目的,是为了在浏览器和服务器之间传送身份信息。利用cookie保存少量数据绝对方便,可是操作它们的JavaScript语法多少有点不够人性化。但cookie也有不好的一面,那就是必须处理过期数据,而且要跟着每一次请求来来回回地发送和接收这些没有用的数据。

HTML5新增了更好的本地存储功能,让我们在访客的计算机上保存数据更加方便。这些数据可以无限期地保存在用户计算机上,不会发送到服务器(除非你自己发送),有充裕的空间存储它们,而且能够通过几个简单的JavaScript对象对它们进行操作。这个叫做Web 存储(Web Storage)的新功能特别适合开发离线应用(离线应用将在第10章讨论)。离线应用的数据可以“自给自足”,无论用户能否上网,都可以在本地保存用户信息。

本章将带领大家探索Web存储功能的各个方面。另外,还会介绍一个更新的标准,支持该标准的浏览器能够从计算机硬盘的其他文件中读取数据。