美文网首页
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