使用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);												
											使用jquery操作session方法分享的更多相关文章
- jquery操作checkbox方法(全选、全不选、至少选择一个、选择值/文本)
		原文:http://blog.csdn.net/u014079773/article/details/52371382 在实际开发中我们经常操作checkbox,不仅仅要获得checkbox选中的值, ... 
- jquery操作session的方法
		jquery.session.js使用 //此方法在java中不能使用 // jquery.session.js 简单使用方法 添加数据 $.session.set('key', 'value ... 
- 利用jquery操作Radio方法小结
		用Radio来实现用户的选择效果,在项目中积累了一些利用JQUERY来操作Radio的方法,这里与大家分享下 在开发中经常会用到Radio来实现用户的选择效果,我在项目中积累了一些利用JQUERY来操 ... 
- 使用jquery操作session
		摘要: 今天分享的是使用jquery来处理session.我们将使用sessionStorage对象,它类似与localStorage对象,只是sessionStorage是用来储存session数据 ... 
- 关于JQUERY操作XML问题!
		使用JQUERY操作XML方法: 1.$.get(”xml文件路径",function(data){}); 2.$.Post(”xml文件路径",function(data){}) ... 
- Jquery操作Cookie取值错误的解决方法
		使用JQuery操作cookie时 发生取的值不正确,结果发现cookie有四个不同的属性,分享下错误的原因及解决方法. 使用JQuery操作cookie时 发生取的值不正确的问题: 结果发现coo ... 
- ThinkPHP第二十六天(JQuery操作select,SESSION和COOKIE)
		1.JQuery操作select,假设<select id="my"> A:双击选项<option>事件,应该是select的dbclick事件. B:获得 ... 
- jQuery操作Table tr td常用的方法
		虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ... 
- 汇总常用的jQuery操作Table tr td方法
		虽然现在DIV+CSS进行页的布局大行其道,但是很多地方使用table还是有很多优势,用table展示数据是比较方便的,下面汇总了jQuery操作Table tr td常用的方法,熟记这些操作技巧,下 ... 
随机推荐
- 【LeetCode】76. Minimum Window Substring
			Minimum Window Substring Given a string S and a string T, find the minimum window in S which will co ... 
- centos增加软连接
			#增加软连接 ln -s /usr/local/git/bin/* /usr/bin/ 
- 面面具到!android重力传感器
			前两篇都是向大家介绍了很有意思的两种手势操作,嵌入我们游戏中,不得不说让游戏的自由度.可玩性和趣味性都增色不少!那么今天继续给大家介绍一亮点!传感器! 一:什么是传感器: 所谓传感器能够探测如光.热. ... 
- TensorFlow   简单实例
			TF 手写体识别简单实例: TensorFlow很适合用来进行大规模的数值计算,其中也包括实现和训练深度神经网络模型.下面将介绍TensorFlow中模型的基本组成部分,同时将构建一个CNN模型来对M ... 
- screen常用命令
			1. 背景 由于经常使用ssh登录实验室的服务器训练神经网络, 而一些复杂的神经网络模型需要长时间训练,在此期间,如果出现网络等原因出现链接中断的话,服务器的进程也会被杀死,之前的一切半途而废.利用s ... 
- JQuery实现选择特定楼层回复
			JQuery实现选择特定楼层回复 需求: 一个论坛里面的小功能,除了回复帖子之外,也能够回复帖子以下的回复.详细实现细节: 每个回复有一个"回复"按钮,点击按钮实现: 在form表 ... 
- php检测iis环境是否支持htaccess
			php检测iis环境是否支持htaccess的方法. modrewrite.php <?php echo "mod_rewrite works"; ?> open_me ... 
- atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模
			atitit.抽奖活动插件组件设计--结构设计and 抽奖流程建模 1. 组件结构 1 2. startDraw 开始抽奖流程建模 1 3. 抽奖算法 2 作者:: 老哇的爪子 Attilax 艾龙, ... 
- Quartus调用Modelsim SE避免重复编译Altera器件库的方法
			最近用Quartus 15.0配合Modelsim SE 10.4的64位版本,简直就是闪电一般的仿真速度.但是众所周知,SE版本最大的问题就是每次由Quartus自动调用时,都要重新编译所使用的器件 ... 
- 改变placeholder的样式
			input::-webkit-input-placeholder{ font-size:12px; color:#d2d2d2 } 
