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. MAC泛洪攻击

    先来解释一下啥是泛洪攻击 交换机里有一张专门记录MAC地址的表,为了完成数据的快速转发,该表具有自动学习机制:泛洪攻击即是攻击者利用这种学习机制不断发送不同的MAC地址给交换机,充满整个MAC表,此时 ...

  2. docker之设置开机自启动(二)

    docker的自启动 通过sysv-rc-conf等管理 启动脚本 # docker.service #!/bin/sh sudo systemctl enable docker sudo syste ...

  3. PIP安装时报The repository located at pypi.douban.com is not a trusted or secure host and is being ignore

    C:\WINDOWS\system32>pip install scrapyCollecting scrapy The repository located at pypi.douban.com ...

  4. Linux内核线程kernel thread详解--Linux进程的管理与调度(十)【转】

    转自:http://blog.csdn.net/gatieme/article/details/51589205 日期 内核版本 架构 作者 GitHub CSDN 2016-06-02 Linux- ...

  5. Gym 101081K Pope's work

    题目链接:Gym - 101081K 题意:给n个箱子,每个箱子有一个重量W和一个承重R,表示它上面能放最多R-W的重量.问最多能把多少箱子堆到一堆. 思路:发现在一堆箱子里,两个箱子交换位置,对其他 ...

  6. tyvj P1050 最长公共子序列

    题目链接:http://tyvj.cn/p/1050 题解: 裸题,只是为了测试LCS模板写对没有…… #include<cstdio> #include<cstring> # ...

  7. jfinal文件上传

    jfianl获取表单数据,需要先getFile()获取文件,再使用getPara() public class ImageUploadController extends Controller{ pu ...

  8. GPS 与 北斗 初步对比

    一.脉冲 GPS每秒可获得一次卫星星历电文,秒脉冲的误差服从正态分布,锁住的可用卫星达到四颗以上时,授时脉冲的1精度在100 ns以内:当锁住的可用卫星少于四颗时,解算方程组的信息不够充分,授时精度将 ...

  9. 关于真多核和加多核&线程由哪几部分组成

    网上查的资料小结,没有考证. 真多核是指一个cpu多个核心,即多个内核. 假多核是指多个cpu捆绑形成的分布式计算,ARM针对服务器市场推出的处理器为多个cpu的 真多核的应用奔腾和因特尔 双核芯cp ...

  10. python中__dict__与dir()的区别

    在python中__dict__与dir()都可以返回一个对象的属性,区别在于: __dict__是对象的一个属性,而dir()是一个built-in的方法: __dict__返回一个对象的属性名和值 ...