本地存储

2017-10-08  本文已影响37人  果汁密码

在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全)

JS中的本地存储:

使用JS向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可以获取到上一次存储的信息

1.本地存储的方案:

传统:

HTML5:webStorage

2、cookie localStorage sessionStorage

localStorage.setItem('age', JSON.stringify({"jianshu": "简书"}));
console.log(localStorage.getItem('age'));->'{"jianshu":"简书"}'`
localStorage.removeItem('age');`
localStorage.clear();
console.log(localStorage.length);->1
console.log(localStorage.key(0));->'age'
localStorage和sessionStorage的区别:

cookie

cookieRender

 cookieRender.set({
    name: 'age',
    value: 1
  });
 console.log(cookieRender.get('age'));

cookie 和 localStorage的区别:

真实项目中的本地存储都使用哪些东西?

本地存储都是明文存储

对于重要的信息我们一般不要存储到本地,如果非要存储的话我们需要把存储的信息进行加密

escape && unescape

escape && unescape 可以对中文的字符串进行编码和解码,防止传递存储过程中出现乱码,除此之外可以使用的还有很多很多:encodeURI() decodeURI() encodeURIComponent() decodeURIComponent() ...

var str = "简书";
var n = escape(str);
console.log(n) ->"%u7B80%u4E66"
var m = unescape(n);
console.log(m); ->简书

cookieRender

var cookieRender = (function () {
    //->设置
    function setValue(options) {
        var _default = {
            name: null,
            value: null,
            expires: new Date(new Date().getTime() + (1000 * 60 * 60 * 24)),
            path: '/',
            domain: ''
        };
        for (var key in options) {
            if (options.hasOwnProperty(key)) {
                _default[key] = options[key];
            }
        }
        document.cookie = _default.name + "=" + escape(_default.value) + ";expires=" + _default.expires.toGMTString() + ";path=" + _default.path + ";domain=" + _default.domain;
    }

    //->获取
    function getValue(name) {
        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
        if (arr != null) {
            return unescape(arr[2]);
        }
        return null;
    }

    //->删除
    function removeValue(options) {
        var _default = {
            name: null,
            path: '/',
            domain: ''
        };
        for (var key in options) {
            if (options.hasOwnProperty(key)) {
                _default[key] = options[key];
            }
        }
        if (getValue(_default.name)) {
            document.cookie = _default.name + "= ;path=" + _default.path + ";domain=" + _default.domain + ";expires=Fri,02-Jan-1970 00:00:00 GMT";
        }
    }

    return {
        set: setValue,
        get: getValue,
        remove: removeValue
    }
})();
上一篇下一篇

猜你喜欢

热点阅读