好程序员 web 前端分享 js 实现 实战案例, 实际开发中有要求用户一些行为每天一次,次日开始重新回复功能,一般前端都是通过 cookie 来记住用户的操作,然后进行判断当日是否还有机会,这时候需要给存储的 cookie 值一个有效期,让次日自动失效,重新计数,代码如下:
cookie = {
/**
* 获取 cookie
*/
get: function (name) {
var cookieName = encodeURIComponent(name) + ‘ = ‘ ,
cookieStart = document.cookie.indexOf(cookieName),
cookieValue = null;
if (~cookieStart) {
var cookieEnd = document.cookie.indexOf( ‘ ; ‘ , cookieStart);
if (!~cookieEnd) {
cookieEnd = document.cookie.length;
}
cookieValue = decodeURIComponent(document.cookie.substring(cookieStart + cookieName.length, cookieEnd));
}
return cookieValue;
},
/**
* 设置 cookie
*/
set: function (name, value, expires, path, domain, secure) {
var cookie = encodeURIComponent(name) + ‘ = ‘ + encodeURIComponent(value);
expires instanceof Date && (cookie += ‘ ; expires= ‘ + expires.toGMTString());
path && (cookie += ‘ ; path= ‘ + path);
domain && (cookie += ‘ ; domain= ‘ + domain);
secure && (cookie += ‘ ; secure ‘ );
document.cookie = cookie;
},
/**
* 删除 cookie
* javascript 里,没有提供直接删除 cookie 的 api ,只有通过将过期时间,
* 设置成过去的某个时间,让 cookie 过期,来删除。
*/
del: function (name, path, domain, secure) {
this.set(name, ‘‘ , new Date(0), path, domain, secure);
}
}
下面是存储 cookie 并设置有效期:
//cookie 过期时间,次日凌晨
var expires = new Date(new Date(new Date().getTime() + 30*24 * 60 * 60 * 1000).setHours(0, 0, 0, 0));
// 需要存储的 cookie 值
var value= ‘ 100 ‘
cookie.set("key", value, expires);
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/69913892/viewspace-2641197/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/69913892/viewspace-2641197/