HTML5 提供了两种在客户端存储数据的新方法:

  • localStorage - 本地永久存储,下次打开浏览器数据依然存在
  • sessionStorage - 只存在于一个会话的数据存储,关闭浏览器数据会被清除
注意:
1)只要清除浏览器cookie,两种存储方式的数据都会被清除
2)对于不同的网站,数据存储于不同的区域,各网站只能访问其自身的数据
3)浏览器之间的数据是各自独立的(比如Firefox中使用localStorage存储一组数据,在Chrome浏览器下是无法读取的)

1、目前大部分的浏览器已支持web storage, 当然也可以检测一下:

     if (!window.localStorage) {
alert('您的浏览器不支持localStorage');
} if (!window.sessionStorage) {
alert('您的浏览器不支持sessionStorage');
}

2、方法

localStorage,sessionStorage 有5个方法,使用方法一致,以下localStorage为例:

  • localStorage.setItem([string] key, [string] value);      //本地客户端存储一个字符串类型的数据

  • localStorage.getItem([string] key);                          //可以读取已知key值的value

  • localStorage.removeItem([string] key);                    //删除指定key的item

  • localStorage.clear();                                               //清除localstorage所有key/value键位对

  • localStorage.key([number] index);                          //得到某个索引的key

3、示例

记录进入页面次数,查看 localStorage 与 sessionStorage 存储数据的变化。

Html:

 <div>
进入页面次数(localStorage):<mark id="local"></mark> time(s)
<br>
进入页面次数(sessionStorage):<mark id="session"></mark> time(s)
</div>

Javascript:

 //记录localStorage进入页面次数
var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1;
localStorage.setItem('localCount', count1);
document.getElementById('local').innerHTML = count1; //记录sessionStorage进入页面次数
var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1;
sessionStorage.setItem('sessionCount', count2);
document.getElementById('session').innerHTML = count2;

step1:进入chrome刷新页面10次

step2:关闭chrome再重新打开

说明:关闭页面后,sessionStorage 的值丢失

step3:第一次进入firefox

说明:浏览器之间的数据是各自独立的,firefox 读取不到 chrome的客户端存储数据

step4:清空chrome的cookie

说明:清空cookie,localStorage 与 sessionStorage 的数据均被清除

源代码:

 <!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>在客户端存储数据</title>
</head>
<body>
<div>
进入页面次数(localStorage):<mark id="local"></mark> time(s)
<br>
进入页面次数(sessionStorage):<mark id="session"></mark> time(s)
</div>
<script>
if (window.localStorage) { //sessionStorage
//记录localStorage进入页面次数
var count1 = localStorage.getItem('localCount') ? parseInt(localStorage.getItem('localCount')) + 1 : 1;
localStorage.setItem('localCount', count1);
document.getElementById('local').innerHTML = count1; //记录sessionStorage进入页面次数
var count2 = sessionStorage.getItem('sessionCount') ? parseInt(sessionStorage.getItem('sessionCount')) + 1 : 1;
sessionStorage.setItem('sessionCount', count2);
document.getElementById('session').innerHTML = count2;
}
</script>
</body>
</html>

HTML5 本地存储(Web Storage)的更多相关文章

  1. HTML5 本地存储Web Storage简单了解

    ​HTML5本地存储规范,定义了两个重要的API :Web Storage  和  本地数据库Web SQL Database. 本地存储Web Storage 实际上是HTML4的cookie存储机 ...

  2. HTML5本地存储 Web Storage

    Web Storage基本介绍 HTML5 定义了本地存储规范 Web Storage , 提供了两种存储类型 API  sessionStorage 和 localStorage,二者的差异主要是数 ...

  3. html5本地存储web storage的简单使用

    html5的一个非常cool的功能,就是web storage,类似于之前的cookie,不过与之不同的是,web storage 拥有本地5兆的容量可以存储,而cookie却只有4K,这是完全不能比 ...

  4. HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  5. [转]HTML5本地存储——Web SQL Database

    在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数据就 ...

  6. HTML5本地存储(Local Storage) 的前世今生

    长久以来本地存储能力一直是桌面应用区别于Web应用的一个主要优势.对于桌面应用(或者原生应用),操作系统一般都提供了一个抽象层用来帮助应用程序保存其本地数据 例如(用户配置信息或者运行时状态等). 常 ...

  7. HTML5本地存储——Web SQL Database与indexedDB

    虽然在HTML5 WebStorage介绍了html5本地存储的Local Storage和Session Storage,这两个是以键值对存储的解决方案,存储少量数据结构很有用,但是对于大量结构化数 ...

  8. 本地存储 web storage

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. html5本地存储 local storage

    HTML5 web storage, a better local storage than cookies. With HTML5, web pages can store data locally ...

  10. HTML5本地存储——IndexedDB(一:基本使用)

    在HTML5本地存储——Web SQL Database提到过Web SQL Database实际上已经被废弃,而HTML5的支持的本地存储实际上变成了 Web Storage(Local Stora ...

随机推荐

  1. 搭建linux+nginx+mysql+php环境

    yum install -y gcc gcc-c++  make zlib zlib-devel pcre pcre-devel  libjpeg libjpeg-devel libpng libpn ...

  2. go语言基本介绍

    Golang发展历史 1. 诞生历史a. 诞生与2006年1月2号下午15点4分5秒b. 2009发布并正式开源c. 2012年第一个正式版本Go 1.0发布d. 截至到2017年8月24号Go 1. ...

  3. 用C#实现对MSSqlServer数据库的增删改查---Server层(WaterLevelRecordServer.cs、DeviceRecordServer.cs)

    抛开现实的残酷与无奈,对技术孜孜不倦的追求,从专注到执着,从疯狂到忘我,始终坚信代码可以改变世界,更能改变自己的人生. WaterLevelRecordServer.cs using System; ...

  4. 使用Git Wiki 管理文档时,文档编写的基本用法

    自己初次接触GitLab,通过百度和自己查找资料,了解了一部分.在自己的工作中,主要用到GitLab的Wiki文档版本管理能力.我总结了一小部分文本编辑需要用到的东西. 一.文本的排版 为了让文本/文 ...

  5. java IntelliJ IDEA 13 注册码 IDEA序列号 License Key

    java IntelliJ IDEA 13 注册码 IDEA序列号 License Key Username: JavaDeveloper@sskaje.me License: 282971-M1NW ...

  6. 微信小程序-怎么获取当前页面的url

    getCurrentPages() 函数用于获取当前页面栈的实例,以数组形式按栈的顺序给出,第一个元素为首页,最后一个元素为当前页面. https://developers.weixin.qq.com ...

  7. bitbucket SSH 生成

    在bitbucket设置ssh的方法: 1.运行ssh-keygen. 2.一路enter,直接到结束. 3 seeting 中Bitbucket选择.ssh/id_rsa.pub文件

  8. PhpStorm函数注释的设置

    首先,PhpStorm中文件.类.函数等注释的设置在:setting->Editor->FIle and Code Template->Includes下设置即可,其中方法的默认是这 ...

  9. numpy中min函数

    numpy提供的数组功能比较常用,NumPy中维数被称为轴,轴数称为秩. import numpy as np 比如a = np.array([[1, 5, 3], [4, 2, 6]]) a.min ...

  10. day1 python简介和入门

    Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python: 安装Python 1.下载安装包     https://www.python.org/downloads ...