摘要:
今天分享的是使用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);