一、基本语法
在客户端存储数据 HTML5
提供了两种在客户端存储数据的新机制:
- localStorage - 没有时间限制的数据存储
- sessionStorage - 针对一个 session 的数据存储
而在之前,这些都是由 cookie
完成的。但是 cookie
不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie
速度很慢而且效率也不高。
在 HTML5
中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。
HTML5
使用 JavaScript
来存储和访问数据。可以通过调用Window.sessionStorage
和Window.localStorage
属性创建一个Storage
对象的实例。
Storage
对象以简单的键值得形式来储存数据,键值都是以字符串的形式进行储存,如果一个值是数字,它将被转为字符串。
Storage
对象也提供了一些数据增删改查提供的方法:
- key();
- getItem();
- setItem();
- removeItem();
- clear();
下面以localStorage
为例来操作数据
localStorage 的方法
- 新增或者修改数据:
localStorage.colorSetting = '#a4509b';
localStorage['colorSetting'] = '#a4509b';
localStorage.setItem('colorSetting', '#a4509b');
- 获取数据:
localStorage.colorSetting;
localStorage['colorSetting'];
localStorage.getItem('colorSetting');
- 删除数据或清空数据:
localStorage.removeItem('colorSetting');
// 删除数据数据时使用单个参数;
localStorage..clear();
// 清空数据数据时不需要参数;
localStorage 和 sessionStorage 的区别
sessionStorage
也具有上面localStorage
使用的一些方法,但不同的是:
localStorage
存储的数据没有时间限制。只要浏览器不清楚数据,它储存的数据一直存在。sessionStorage
方法针对一个session
进行数据存储。当用户关闭浏览器窗口后,数据会被删除。
localStorage 的巧用
对用户访问页面的次数进行计数:
<script type="text/javascript">
if (localStorage.pagecount)
{
localStorage.pagecount=Number(localStorage.pagecount) +1;
}
else
{
localStorage.pagecount=1;
}
</script>
用户每次刷新页面都会触发localStorage
,触发localStorage
后都会给 localStorage.pagecount
的值增加增加一,以此来达到统计访问量的目的。
用户在当前 session 中访问页面的次数进行计数时,将上面代码中的localStorage
换成sessionStorage
即可。
二、第三方插件
对于数据多维的储存,使用Storage插件会更加方便,比较常用有Storage.js
、store.js
等插件。
store.js 插件:
该插件小巧,简介,兼容性很强,可实现大多数日常的应用。
API
// Store current user
store.set('user', { name:'Marcus' })
// Get current user
store.get('user')
// Remove current user
store.remove('user')
// Clear all keys
store.clearAll()
// Loop over all stored values
store.each(function(value, key) {
console.log(key, '==', value)
})