js中cookie的实际应用

9 篇文章 0 订阅
2 篇文章 0 订阅
最近项目开发过程中遇到一个问题,需求是记录各个权限用户最后登录时间,之前没有细想只是一股脑的把当前时间,以及各种身份验证信息塞进方法验证,然后把该方法放在登录按钮旁边,结果测试发现,实际出现情况是,后台插入数据库操作还没走完,页面已经跳转,然后打开系统管理页面查看记录情况,果然没有保存成功。后来各种试验发现弹出登录页面后必须等上七八秒再点登录才能记录成功,但这明显不符合实际需求。再然后,想着退而求其次,把该方法放在首页里面,即登录成功后跳转的页面,果然,记录成功,每次登录,时间成功记录。就在沾沾自喜以为已经解决的时候,测试反馈说仔细看了下系统管理页面,时间是记录成功了,但是记录次数出错,就是说由于该方法位于
$(function),因此每次刷新页面,都会记录一次时间,搞成了半吊子,于是继续埋头搞,脑子一度陷入混乱的情况下灵感一现,发现缺少了一个动态标志来确保方法只执行一次,但是数据库表已成型,不能更改,而且考虑从后台再返回标志可能还会延时,于是才想起来cookie这个常年不用的东西。
//设置cookie  
function setCookie(cname, cvalue, exdays) {  
    var d = new Date();  
    d.setTime(d.getTime() + (exdays*60*1000));  
    var expires = "expires="+d.toUTCString();  
    document.cookie = cname + "=" + cvalue + "; " + expires;  
}  
//获取cookie  
function getCookie(cname) {  
    var name = cname + "=";  
    var ca = document.cookie.split(';');  
    for(var i=0; i<ca.length; i++) {  
        var c = ca[i];  
        while (c.charAt(0)==' ') c = c.substring(1);  
        if (c.indexOf(name) != -1) return c.substring(name.length, c.length);  
    }  
    return "";  
}  	
//清除cookie    
/* function clearCookie(name) {    
    setCookie(name,"false", -1);    
}  */ 
function checkCookie() {  
    var user = getCookie("isFirst");  
    if (user == "true") {  
    	//clearCookie("isFirst");
    	setCookie("isFirst","false",1);
    	var us = getCookie("isFirst");  
       	userinfoService.insertUserLog("登录");
    } 
} 


 查看官方给出的示例代码,写出符合自己需求的方法,分别是设置,获取,清除,点击登录时候将标志放入cookie,首页加入获取\清除的cookie方法但是测试发现,断点处的清除的方法确实走了但是并没有改变变量值,最后直接把在调用方法里set,测试完美解决.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值