HTML HTML5 PHP Mysql Linux 缓存技术 工具 资讯 读书 其他

HTML5 网络存储 (Web Storage)


HTML5 web storage是比cookie存储更好的存储方式.


什么是HTML5 web storage?

在HTML5中, 网页可以将数据存储在本地浏览器中.

以前,是使用cookies进行处理的.然而,web storage更安全和快速. 数据不包括在每个服务器请求中,只在获取时使用. 还可以存储大量的数据,而不会影响网站的性能.

数据使用键值对的形式存储,每个网页只能获取自己存储的数据.

不像cookies,存储限制要大的多(至少5M),并且信息不会传到服务器.


浏览器支持

Internet Explorer Firefox Opera Google Chrome Safari

Web Storage 支持IE8+, 火狐, 欧朋, 谷歌和苹果浏览器.

注意: IE7以及更早版本的浏览器, 不支持Web Storage.


HTML5 Web Storage对象

HTML5 Web Storage 在客户端提供了2个新对象用于存储数据:

  • window.localStorage - 存储数据不过期
  • code.sessionStorage - 为一个对话存储数据(当页签关闭时数据会消失)

在使用web storage之前, 检测浏览器是否支持localStorage和sessionStorage:

if(typeof(Storage)!=="undefined")
  {
  // localStorage/sessionStorage对应的逻辑代码
  }
else
  {
  // 对不起!不支持web storage..
  }


localStorage对象

localStorage对象存储数据没有过期时间. 当浏览器关闭时数据不会被删除.

例子

// 存储
localStorage.setItem("lastname", "Woo");
// 取回
document.getElementById("result").innerHTML=localStorage.getItem("lastname");

亲自试一试 »

例子说明:

  • 创建一个localStorage对象,键值对形式name="lastname" 和值="Woo"
  • 获取"lastname"的值并且将其插入到id="result"的元素中

上面的例子也可以这么写:

// 存储
localStorage.lastname = "Woo";
// 获取
document.getElementById("result").innerHTML=localStorage.lastname;

使用下面的方法删除localStorage中"lastname"

localStorage.removeItem("lastname");

注意: Name/value总是作为字符串进行存储. 当需要的时候记得转换他们的格式!

下面的例子统计用户点击按键的次数.代码中将字符串转换成数字类型后进行增长计数:

例子

if (localStorage.clickcount)
  {
  localStorage.clickcount = Number(localStorage.clickcount) + 1;
  }
else
  {
  localStorage.clickcount = 1;
  }
document.getElementById("result").innerHTML="你已经点击了 " +
localStorage.clickcount + " 次.";

亲自试一试 »


sessionStorage对象

sessionStorage对象和localStorage对象基本一样, 除了 它只保存在当前会话中. 当用户关闭浏览器或页签时数据会被删除.

以下例子统计了用户点击按钮的次数,使用的是当前会话:

例子

if (sessionStorage.clickcount)
  {
  sessionStorage.clickcount = Number(sessionStorage.clickcount) + 1;
  }
else
  {
  sessionStorage.clickcount = 1;
  }
document.getElementById("result").innerHTML="在这个会话中,你已经点击了 " +
sessionStorage.clickcount + " 次.";

亲自试一试 »


To Top