美文网首页
localstorage 笔记

localstorage 笔记

作者: tanyp | 来源:发表于2017-03-15 17:41 被阅读0次

一、基本语法

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

  • localStorage - 没有时间限制的数据存储
  • sessionStorage - 针对一个 session 的数据存储

而在之前,这些都是由 cookie 完成的。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

HTML5 中,数据不是由每个服务器请求传递的,而是只有在请求时使用数据。它使在不影响网站性能的情况下存储大量数据成为可能。

HTML5 使用 JavaScript 来存储和访问数据。可以通过调用Window.sessionStorageWindow.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.jsstore.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)
})

相关文章

网友评论

      本文标题:localstorage 笔记

      本文链接:https://www.haomeiwen.com/subject/ppdlnttx.html