在项目中,前端的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溢出相关推荐

  1. java禁止js获取cookie_java中Cookie被禁用后Session追踪问题

    一.服务器端获取Session对象依赖于客户端携带的Cookie中的JSESSIONID数据.如果用户把浏览器的隐私级别调到最高,这时浏览器是不会接受Cookie.这样导致永远在服务器端都拿不到的JS ...

  2. java 返回js_如何基于java或js获取URL返回状态码

    这篇文章主要介绍了如何基于java或js获取URL返回状态码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参fgLAeaGAH考下 描述:使用java或者 ...

  3. js获取用户的操作系统和浏览器版本的方法

     让IE支持placeholder属性 通过window.location获得URL的信息 js获取用户的操作系统和浏览器版本的方法 2013-07-17 15:12:11|  分类: 工作 |  ...

  4. java,js获取本周和下周开始结束日期

    额,本人第一次下博文,先写一篇看看咋写. 文章目录 前言 一.java下获取本周开始结束日期以及根据某个日期获取本周开始结束日期 二.js获取本周或下周日期 总结 前言 前几天开发时用到了一些获取本周 ...

  5. java和js获取当前天之后或之前7天(任意)日期

    一.获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) 16 /** 17 * 获取过去第几天的日期(- 操作) 或者 未来 第几天的日期( + 操作) 18 * 19 * @p ...

  6. Selenium Webdriver 的使用java执行js代码 解决 ScriptEngine不支持浏览器内置对象window,document的问题

    问题场景: 使用java 掉用js代码,发现 ScriptEngine不支持浏览器内置对象window,document的问题: 问题一:为什么要 用java掉用js代码? 比如在 抓取(爬取)对方网 ...

  7. java,js获取数组最大/小值

    js最小值: var minValue = Math.min.apply(null,args[]); js最大值 var maxValue = Math.max.apply(null,args[]); ...

  8. js 获取用户当前使用的 浏览器 判断是否谷歌浏览器

    //判断浏览器 function myBrowser() { var userAgent = navigator.userAgent; //取得浏览器的userAgent字符串 var isOpera ...

  9. JS点击获取验证码后60秒内禁止重新获取(防刷新)

    JS点击获取验证码后60秒内禁止重新获取(防刷新) 参考 · 阅读文章: JS实现发送短信验证后按钮倒计时功能(防止刷新倒计时失效) 注意: 场景:在登录页点击发送啊验证码按钮,开始进入倒计时,在第3 ...

最新文章

  1. matlab多元回归程序,多元回归程序MATLAB程序
  2. 树莓派 ubuntu 安装Python+OpenCV
  3. Activity的使用(七):activity的返回值
  4. Android 计算器
  5. 数据预处理(part2)--多个预测变量数据变换
  6. AXI_01 《AXI总线系列文章》由来
  7. 牛客SQL22 统计各个部门的工资记录数
  8. C++奇特的递归模板式
  9. 程序安装制作不用愁—Wise installation入门教程
  10. git cherry-pick 的使用
  11. Rust手机端皮肤搜索、生成Rust专属名片、转盘概率模拟
  12. SCJP刷题学习笔记(Part six)
  13. 中英文网站googleSEO优化技巧
  14. 基于SSM小区物业管理系统
  15. 文件备份 服务器,服务器文件备份
  16. jacob xls与xlsx格式互转
  17. 【集训日志】 金华集训
  18. c语言求斐波那契数列n项以及前n项和
  19. edge浏览器如何把网页放到桌面_如何在桌面创建Win10 Edge浏览器快捷方式
  20. 各应用/协议常用端口

热门文章

  1. 译文丨伯克利对serverless的看法:简化云编程
  2. 【DevCloud·敏捷智库】如何利用用户故事了解需求
  3. 【玩转Atlas200DK系列】为Atlas200DK配置wifi外挂模块
  4. PHP+MySql+PDO实现简单登录、注册
  5. 基于Matlab的跨孔CT胖射线追踪算法(四)
  6. Java TCP/UDP编程
  7. Java增强型for
  8. poj 3414 Pots BFS
  9. leetcode344题:反转字符串
  10. python爬虫应用实例_Python爬虫进阶必备 | 一个典型的 AES 加密在爬虫中的应用案例...