zoukankan      html  css  js  c++  java
  • 封装cookie localStorage sessionStorage

    var cookie = function(name, value, options) {
            if (typeof value !== 'undefined') {
                options = options || {};
                if (value === null) {
                    value = '';
                    options = $.extend({}, options);
                    options.expires = -1;
                }
                var expires = '';
                if (options.expires && (typeof options.expires === 'number' || options.expires.toUTCString)) {
                    var date;
                    if (typeof options.expires === 'number') {
                        date = new Date();
                        date.setTime(date.getTime() + (options.expires * 24 * 60 * 60 * 1000));
                    } else {
                        date = options.expires;
                    }
                    expires = '; expires=' + date.toUTCString();
                }
                var path = options.path ? '; path=' + (options.path) : ';path=/';
                var domain = options.domain ? '; domain=' + (options.domain) : '';
                var secure = options.secure ? '; secure' : '';
                document.cookie = [name, '=', encodeURIComponent(value), expires, path, domain, secure].join('');
            } else {
                var cookieValue = null;
                if (document.cookie && document.cookie !== '') {
                    var cookies = document.cookie.split(';');
                    for (var i = 0; i < cookies.length; i++) {
                        var cookie = $.trim(cookies[i]);
                        if (cookie.substring(0, name.length + 1) === (name + '=')) {
                            cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
                            break;
                        }
                    }
                }
                return cookieValue;
            }
        }
        var removeCookie = function(key) {
            $.cookie(key, '', {
                expires: -1
            });
        }
     var storage = function(st, key, value, expires) {
                if (st == 'l') {
                    st = window.localStorage;
                    expires = expires || 60;
                } else {
                    st = window.sessionStorage;
                    expires = expires || 5;
                }
                if (typeof value != 'undefined') {
                    try {
                        return st.setItem(key, JSON.stringify({
                            data: value,
                            expires: new Date().getTime() + expires * 1000 * 60
                        }));
                    } catch (e) {}
                } else {
                    var result = JSON.parse(st.getItem(key) || '{}');
                    if (result && new Date().getTime() < result.expires) {
                        return result.data;
                    } else {
                        st.removeItem(key);
                        return null;
                    }
                }
            }
  • 相关阅读:
    根据包路径输出类列表
    Logback配置
    接口的幂等性
    mock获取入参数并动态设置返回值
    linux,日志查找技巧
    scrapy 一些坑
    Pyinstaller打包附带DLL、图标和压缩EXE方法
    scrapy 爬虫教程
    买房
    Python: 在CSV文件中写入中文字符
  • 原文地址:https://www.cnblogs.com/xlljay/p/6272326.html
Copyright © 2011-2022 走看看