java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出
在项目中,前端的Cookies往往存一些用户的登录信息和AutoSuggest(基础信息)的东西。
如国家简写,Currency的Code等。
但是Cookies的空间是比较小的,多个用户登录一个系统,或者浏览器的cookies被其他应用占用,这时候Cookies的使用就变得很紧张。
Solution(解决方法)
1. 可以把项目中的一些信息有HTML5中的LocalStorage来承担部分的Cache工作,减轻Cookies的负担。
因为LocalStorage号称有10MB的空间。相比Cookies的空间大很多。
不同浏览器间 cookie 总大小也不同:
Firefox 和 Safari 允许 cookie 多达 4097 个字节, 包括名(name)、值(value)和等号。
Opera 允许 cookie 多达 4096 个字节, 包括:名(name)、值(value)和等号。
Internet Explorer 允许 cookie 多达 4095 个字节, 包括:名(name)、值(value)和等号。
注:多字节字符计算为两个字节。在所有浏览器中,任何 cookie 大小超过限制都被忽略,且永远不会被设置。
DCS.Common.suggestCookieStore =function(userId,time){
//------------for cookie initialization
var_rsProvider = DCS.Common.getCookieStore(userId,time);
this.userId = userId;
this.KeySeperator ='-.';
this.ItemSeperator ='/.';
varobj = _rsProvider.get(NSConst.Cookie.DCS) || {};
vartmp = obj[this.userId];
obj = {};
obj[this.userId] = tmp;//delete other users cookie
this.dcsObj = obj;
this.store =function(key,obj){
this.clear(key);
varallStr =this.dcsObj[this.userId] ||'';
varstr ='';
if(allStr && allStr !='')
str += this.ItemSeperator;
str += key+this.KeySeperator+_rsProvider.encodeValue(obj);
varlength = str.length;
if((length+DCS.Common.getCookieLength([NSConst.Cookie.DCS])) > 3300)
this.clearLRU();
if((length+DCS.Common.getCookieLength([NSConst.Cookie.DCS])) > 3300)
this.clearLRU();
varallStr =this.dcsObj[this.userId] ||'';
allStr += str;
this.dcsObj[this.userId] = allStr;
_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);
};
this.clearLRU =function(){
varallStr =this.dcsObj[this.userId];
if(allStr && allStr.length > 2){
varstart = allStr.indexOf(this.ItemSeperator) ;
if(start > 0 && (start+2)
allStr = allStr.substring(start+2);
this.dcsObj[this.userId] = allStr;
_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);
}
}
};
this.get =function(key){
varallStr =this.dcsObj[this.userId];
if(allStr){
if(allStr.length > (key.length+2) && allStr.indexOf(key+this.KeySeperator) > -1){
varkeyStr = key+this.KeySeperator;
varstart = allStr.indexOf(keyStr);
varkeyLength = keyStr.length;
varend = allStr.indexOf(this.ItemSeperator,start);
if(end
end = allStr.length;
}
varresult = allStr.substring(start+keyLength,end);
return_rsProvider.decodeValue(result);
}
}
returnnull;
};
this.clear =function(key){
varallStr =this.dcsObj[this.userId];
if(allStr){
if(allStr.length > (key.length+2) && allStr.indexOf(key+this.KeySeperator) > -1){
varkeyStr = key+this.KeySeperator;
varstart = allStr.indexOf(keyStr);
varend = allStr.indexOf(this.ItemSeperator,start);
if(end
if(start > 2)
start -= 2; //if not the first item, need clear the sepeartor
allStr = allStr.substring(0,start);
}
else{
allStr = allStr.substring(0,start)+allStr.substring(end+2,allStr.length);
}
this.dcsObj[this.userId] = allStr;
_rsProvider.set(NSConst.Cookie.DCS,this.dcsObj);
}
}
};
this.clearAll=function(){
_rsProvider.clear(NSConst.Cookie.DCS);
}
};
2. 也可以用JS实时监控Cookie的使用情况,万一cookie使用超过预警值,那就要强制清空然后update。
至于怎么实现,项目中有具体的代码。
java禁止js获取cookie_JS里面如何防止浏览器COOKIES溢出相关推荐
- java禁止js获取cookie_java中Cookie被禁用后Session追踪问题
一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据.如果用户把浏览器的隐私级别调到最高,这时浏览器是不会接受Cookie.这样导致永远在服务器端都拿不到的JS ...
- java 返回js_如何基于java或js获取URL返回状态码
这篇文章主要介绍了如何基于java或js获取URL返回状态码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参fgLAeaGAH考下 描述:使用java或者 ...
- js获取用户的操作系统和浏览器版本的方法
让IE支持placeholder属性 通过window.location获得URL的信息 js获取用户的操作系统和浏览器版本的方法 2013-07-17 15:12:11| 分类: 工作 | ...
- java,js获取本周和下周开始结束日期
额,本人第一次下博文,先写一篇看看咋写. 文章目录 前言 一.java下获取本周开始结束日期以及根据某个日期获取本周开始结束日期 二.js获取本周或下周日期 总结 前言 前几天开发时用到了一些获取本周 ...
- java和js获取当前天之后或之前7天(任意)日期
一.获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) 16 /** 17 * 获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) 18 * 19 * @p ...
- Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题
问题场景: 使用java 掉用js代码,发现 ScriptEngine不支持浏览器内置对象window,document的问题: 问题一:为什么要 用java掉用js代码? 比如在 抓取(爬取)对方网 ...
- java,js获取数组最大/小值
js最小值: var minValue = Math.min.apply(null,args[]); js最大值 var maxValue = Math.max.apply(null,args[]); ...
- js 获取用户当前使用的 浏览器 判断是否谷歌浏览器
//判断浏览器 function myBrowser() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera ...
- JS点击获取验证码后60秒内禁止重新获取(防刷新)
JS点击获取验证码后60秒内禁止重新获取(防刷新) 参考 · 阅读文章: JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效) 注意: 场景:在登录页点击发送啊验证码按钮,开始进入倒计时,在第3 ...
最新文章
- matlab多元回归程序,多元回归程序MATLAB程序
- 树莓派 ubuntu 安装Python+OpenCV
- Activity的使用(七):activity的返回值
- Android 计算器
- 数据预处理(part2)--多个预测变量数据变换
- AXI_01 《AXI总线系列文章》由来
- 牛客SQL22 统计各个部门的工资记录数
- C++奇特的递归模板式
- 程序安装制作不用愁—Wise installation入门教程
- git cherry-pick 的使用
- Rust手机端皮肤搜索、生成Rust专属名片、转盘概率模拟
- SCJP刷题学习笔记(Part six)
- 中英文网站googleSEO优化技巧
- 基于SSM小区物业管理系统
- 文件备份 服务器,服务器文件备份
- jacob xls与xlsx格式互转
- 【集训日志】 金华集训
- c语言求斐波那契数列n项以及前n项和
- edge浏览器如何把网页放到桌面_如何在桌面创建Win10 Edge浏览器快捷方式
- 各应用/协议常用端口
热门文章
- 译文丨伯克利对serverless的看法:简化云编程
- 【DevCloud·敏捷智库】如何利用用户故事了解需求
- 【玩转Atlas200DK系列】为Atlas200DK配置wifi外挂模块
- PHP+MySql+PDO实现简单登录、注册
- 基于Matlab的跨孔CT胖射线追踪算法(四)
- Java TCP/UDP编程
- Java增强型for
- poj 3414 Pots BFS
- leetcode344题:反转字符串
- python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...