使用js实现前端缓存
来源:互联网 发布:unity3d 城市夜景资源 编辑:程序博客网 时间:2024/05/23 15:13
使用js实现前端缓存的工具类,在支持html5的浏览器上优先使用html5的storage进行缓存
调用方式为(例如存储):
sy.cookieString/('key','value')
此处使用的第三方js库为:
jquery.cookie.js
jquery.js
json2.js
var sy = sy || {};sy.data = sy.data || {};// 用于存放临时的数据或者对象/** * 0:当前窗口 * 1:所有窗口共享 * 2:指定域名结尾允许访问,配置domain,需要支持html5 */sy.getDataScope = function(){return 1;}/** * 范围 */sy.getDomain = function(){return ".com";}/** * 当前窗口缓存 */sy.setItem = function(key,value){if(key!=undefined){if(sy.data==undefined){sy.data = {};}sy.data[key]=value;}}/** * 当前窗口获取缓存 */sy.getItem = function(key){if(key!=undefined){if(sy.data==undefined){return undefined;}return sy.data[key];}}/** * 缓存数据 * @param key 键 * @param value 值 */sy.cookie = function(key,value){switch(sy.getDataScope()){case 0:if(sessionStorage){return storage(sessionStorage,key,value);}else{if(value==undefined){return sy.data[key];}else{sy.data[key]=value;return value;}}break;case 2:if(globalStorage){return storage(globalStorage[sy.getDomain()],key,value);}//如果域对象不可用则存储为全局case 1:if(localStorage){return storage(localStorage,key,value);}else{if(value==undefined){return $.cookie(key);;}else{$.cookie(key,value);;return value;}}break;}function storage(obj,key,value){if(obj){if(value==undefined){return obj.getItem(key);}else{obj.setItem(key,value);return value;}}}}/** * 仅用于存储cookie,会将对象转为jsonString */sy.cookieString = function(key,value){if(value!=undefined){sy.cookie(key,toJsonString(value));}}/** * 仅用于读取cookie,会将jsonString转为对象 */sy.cookieParse = function(key){var cv = sy.cookie(key);if(cv==undefined){return undefined;}return JSON.parse(cv);}/** * 清除所有缓存 */sy.clearCookies = function(){switch(sy.getDataScope()){case 0:if(sessionStorage){sessionStorage.clear();}else{sy.data={};}break;case 2:if(globalStorage){globalStorage[sy.getDomain()].clear();break;}//如果域对象不可用则清理全局case 1:if(localStorage){localStorage.clear();}else{clearCookies();function clearCookies(){var cookies = document.cookie.split(";"); for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; var eqPos = cookie.indexOf("="); var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; }if(cookies.length > 0){ for (var i = 0; i < cookies.length; i++) { var cookie = cookies[i]; var eqPos = cookie.indexOf("="); var name = eqPos > -1 ? cookie.substr(0, eqPos) : cookie; var domain = location.host.substr(location.host.indexOf('.')); document.cookie = name + "=;expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/; domain=" + domain; }}}}break;}}/** * 删除cookie */sy.removeCookie = function(key){switch(sy.getDataScope()){case 0:if(sessionStorage){sessionStorage.removeItem(key);}else{sy.data[key]=undefined;}break;case 2:if(globalStorage){globalStorage[sy.getDomain()].removeItem(key);break;}//如果域对象不可用则删除全局cookiecase 1:if(localStorage){localStorage.removeItem(key);}else{$.cookie(key,null);}break;}}
0 0
- 使用JS实现前端缓存
- 使用js实现前端缓存
- 使用JS实现前端缓存
- 使用JavaScript实现前端缓存
- ehcache 实现前端缓存
- 前端 js 缓存 + 后台memcache缓存
- JS前端缓存缓存对象封装
- 前端 js 缓存 + 后台memcache缓存
- js实现不缓存
- 使用jquery-validationEngine框架,4步实现前端JS校验
- [前端 4] 使用Js实现图片上传预览
- js使用JSONP、VAR实现前端跨域
- 前端css,js缓存提升网站性能
- [Js&Html]全面清除前端缓存
- js分页实现,前端实现。
- js使用缓存
- [前端] JS实现文件下载
- js实现前端跨域
- ActivityThread
- linux(ubuntu14.04)+GPU+cuda6.5+caffe+openCV2.4.9+matlab2014a+python的新手配置(修改版)
- 非哥指导思想
- nagios监控windows主机
- 机器学习理解(一)
- 使用js实现前端缓存
- UFT 12.5 下载方法及地址
- vim设置注释颜色
- 中文乱码问题
- 欢迎使用CSDN-markdown编辑器
- Java 流异常的标准处理(转载)
- can总线(三)--如何通过波形解析can总线数据
- SVD++协同过滤
- Android 三大图片缓存原理、特性对比