背景:

  在项目中遇到一个需求:用户登录完之后,网站自动保存用户id存储在本地,在下次打开网页时,通过id判断是否要进行登录操作。

技术方案:

  在HTML5中,本地存储是一个window的属性,包括localStorage和sessionStorage,从名字应该可以很清楚的辨认二者的区别,前者是一直存在本地的,后者只是伴随着session,窗口一旦关闭就没了。二者用法完全相同,这里以localStorage为例。

  用户名、密码保存,自动登录等,可以通过设置cookie实现,第一次登录网站后在本地计算机的中写入cookie,之后再次登录此网站查看cookie中现有的值,用cookie值进行网站登录即可。但是 cookie 不适合大量数据的存储,因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高。

  HTML5提供了localstorage接口,就是。它使在不影响网站性能的情况下存储大量数据成为可能。对于不同的网站,数据存储于不同的区域,并且一个网站只能访问其自身的数据。

代码实现:

  html

   <button class="setBtn">写入localStorage</button>
    <button class="deleteBtn">删除localStorage</button>

    <span class="span1">未登录</span>
    <span class="span2" style="display: none">已经登录了, 欢迎回来</span>

  js

    $(function () {
        var storage = window.localStorage;
        
        // 获取localStorage数据
        var local_name = storage["local-name"];
        if(local_name){ // 已登录
            $('.span1').css({'display': 'none'});
            $('.span2').css({'display': 'block'})
        }else{ // 未登录
            $('.span1').css({'display': 'block'});
            $('.span2').css({'display': 'none'})
        }

        // 写入数据
        $('.setBtn').on('click', function () {
            storage['local-name'] = 'ccc';
            console.log('localStorage设置完毕');
        });

        // 删除数据
        $('.deleteBtn').on('click', function () {
            localStorage.removeItem('local-name');
            console.log('localStorage删除完毕');
        });
    });

  

  

  

版权声明:本文为tsuidev原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/tsuidev/p/7992556.html