zoukankan      html  css  js  c++  java
  • 使用jquery操作session方法分享

    摘要:

      今天分享的是使用jquery来处理session。我们将使用sessionStorage对象,它类似与localStorage对象,只是sessionStorage是用来储存session数据的。当用户关闭浏览器这个数据会被清除掉。

    简介:
      JquerySession是一个基于jquery的用来处理session的库,使用它可以简化我们的工作。在使用之前需要引入jquery。

    语法:

    添加数据
        $.session.set('key', 'value')

    删除数据
        $.session.remove('key');

    获取数据
        $.session.get('key');

    清除数据
        $.session.clear();

    (function($){
    
        $.session = {
    
            _id: null,
    
            _cookieCache: undefined,
    
            _init: function()
            {
                if (!window.name) {
                    window.name = Math.random();
                }
                this._id = window.name;
                this._initCache();
    
                // See if we've changed protcols
    
                var matches = (new RegExp(this._generatePrefix() + "=([^;]+);")).exec(document.cookie);
                if (matches && document.location.protocol !== matches[1]) {
                   this._clearSession();
                   for (var key in this._cookieCache) {
                       try {
                       window.sessionStorage.setItem(key, this._cookieCache[key]);
                       } catch (e) {};
                   }
                }
    
                document.cookie = this._generatePrefix() + "=" + document.location.protocol + ';path=/;expires=' + (new Date((new Date).getTime() + 120000)).toUTCString();
    
            },
    
            _generatePrefix: function()
            {
                return '__session:' + this._id + ':';
            },
    
            _initCache: function()
            {
                var cookies = document.cookie.split(';');
                this._cookieCache = {};
                for (var i in cookies) {
                    var kv = cookies[i].split('=');
                    if ((new RegExp(this._generatePrefix() + '.+')).test(kv[0]) && kv[1]) {
                        this._cookieCache[kv[0].split(':', 3)[2]] = kv[1];
                    }
                }
            },
    
            _setFallback: function(key, value, onceOnly)
            {
                var cookie = this._generatePrefix() + key + "=" + value + "; path=/";
                if (onceOnly) {
                    cookie += "; expires=" + (new Date(Date.now() + 120000)).toUTCString();
                }
                document.cookie = cookie;
                this._cookieCache[key] = value;
                return this;
            },
    
            _getFallback: function(key)
            {
                if (!this._cookieCache) {
                    this._initCache();
                }
                return this._cookieCache[key];
            },
    
            _clearFallback: function()
            {
                for (var i in this._cookieCache) {
                    document.cookie = this._generatePrefix() + i + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
                }
                this._cookieCache = {};
            },
    
            _deleteFallback: function(key)
            {
                document.cookie = this._generatePrefix() + key + '=; path=/; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
                delete this._cookieCache[key];
            },
    
            get: function(key)
            {
                return window.sessionStorage.getItem(key) || this._getFallback(key);
            },
    
            set: function(key, value, onceOnly)
            {
                try {
                    window.sessionStorage.setItem(key, value);
                } catch (e) {}
                this._setFallback(key, value, onceOnly || false);
                return this;
            },
            
            'delete': function(key){
                return this.remove(key);
            },
    
            remove: function(key)
            {
                try {
                window.sessionStorage.removeItem(key);
                } catch (e) {};
                this._deleteFallback(key);
                return this;
            },
    
            _clearSession: function()
            {
              try {
                    window.sessionStorage.clear();
                } catch (e) {
                    for (var i in window.sessionStorage) {
                        window.sessionStorage.removeItem(i);
                    }
                }
            },
    
            clear: function()
            {
                this._clearSession();
                this._clearFallback();
                return this;
            }
    
        };
    
        $.session._init();
    
    })(jQuery);
  • 相关阅读:
    [动图演示]Redis 持久化 RDB/AOF 详解与实践
    挑战10个最难的Java面试题(附答案)【上】
    Python使用psutil模块,做你的电脑管家
    在线工具 正则表达式
    [USACO09JAN]Earthquake Damage
    [USACO09MAR]Moon Mooing
    [HNOI2005]汤姆的游戏
    [SDOI2010]大陆争霸
    [USACO08NOV]Cheering up the Cow
    [USACO08NOV]lites
  • 原文地址:https://www.cnblogs.com/sjqq/p/6398297.html
Copyright © 2011-2022 走看看