jQuery cookie 没有过期
jQuery cookie is not expring
我正在使用这个 jQuery cookie plugin 创建和显示 cookie。
var date = new Date();
var minutes = 2;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('the_cookie', 'the_value', { expires: date });
alert($.cookie('the_cookie'));
我设置了两分钟(为了测试,一般我会用一小时。下面会解释。)但是如果我在两分钟后再次访问该页面,它仍然显示cookie警报。
我想做什么
我想在一小时内向我的网站显示一条消息。这意味着,当访问者第一次打开我的网站时,访问者可以看到消息。当访问者点击其他页面时,消息将不会显示。一小时后,该消息将再次显示。
如何设置分钟、小时和天?
那是因为您在 create/recreate cookie 后显示警报。 :)
如果您将 alert($.cookie('the_cookie'));
移动到代码段的开头,您的 cookie 将在 2 分钟后消失。
只需使用 Chrome 的“资源”>“Cookie”选项卡进行验证。 :)
这是一个更新的测试工具,它也会显示 cookie 过期:
http://jsfiddle.net/bvaughn/860rr2Ly/
if ($.cookie('temporaryCookie')) {
alert('Cookie still set');
} else if ($.cookie('longerCookie')) {
alert('Cookie expired at ' + $.cookie('longerCookie'));
} else {
alert('Cookie never set');
}
var expiresAt = new Date();
expiresAt.setTime(expiresAt.getTime() + 5000); // 5 secs
$.cookie('longerCookie', new Date());
$.cookie('temporaryCookie', true, { expires: expiresAt });
你可以试试
var thecookie = $.cookie('shown');
if (!thecookie) {
var date = new Date();
var delay = 20 * 1000;
date.setTime(date.getTime() + delay);
$.cookie('shown', 'true', {
expires: date
});
$('body').html('show the message')
}
演示:Fiddle
如果您不担心 IE8 和更早版本,您可以直接使用 max-age
和直接 javascript 作为更简单的解决方案:
if (document.cookie.indexOf('the_cookie') == -1) {
//show message
document.cookie = 'the_cookie;path=/;max-age=120;';
}
这会显示消息并设置 2 分钟的 cookie(如果之前未设置 cookie 或已过期)。
我正在使用这个 jQuery cookie plugin 创建和显示 cookie。
var date = new Date();
var minutes = 2;
date.setTime(date.getTime() + (minutes * 60 * 1000));
$.cookie('the_cookie', 'the_value', { expires: date });
alert($.cookie('the_cookie'));
我设置了两分钟(为了测试,一般我会用一小时。下面会解释。)但是如果我在两分钟后再次访问该页面,它仍然显示cookie警报。
我想做什么
我想在一小时内向我的网站显示一条消息。这意味着,当访问者第一次打开我的网站时,访问者可以看到消息。当访问者点击其他页面时,消息将不会显示。一小时后,该消息将再次显示。
如何设置分钟、小时和天?
那是因为您在 create/recreate cookie 后显示警报。 :)
如果您将 alert($.cookie('the_cookie'));
移动到代码段的开头,您的 cookie 将在 2 分钟后消失。
只需使用 Chrome 的“资源”>“Cookie”选项卡进行验证。 :)
这是一个更新的测试工具,它也会显示 cookie 过期: http://jsfiddle.net/bvaughn/860rr2Ly/
if ($.cookie('temporaryCookie')) {
alert('Cookie still set');
} else if ($.cookie('longerCookie')) {
alert('Cookie expired at ' + $.cookie('longerCookie'));
} else {
alert('Cookie never set');
}
var expiresAt = new Date();
expiresAt.setTime(expiresAt.getTime() + 5000); // 5 secs
$.cookie('longerCookie', new Date());
$.cookie('temporaryCookie', true, { expires: expiresAt });
你可以试试
var thecookie = $.cookie('shown');
if (!thecookie) {
var date = new Date();
var delay = 20 * 1000;
date.setTime(date.getTime() + delay);
$.cookie('shown', 'true', {
expires: date
});
$('body').html('show the message')
}
演示:Fiddle
如果您不担心 IE8 和更早版本,您可以直接使用 max-age
和直接 javascript 作为更简单的解决方案:
if (document.cookie.indexOf('the_cookie') == -1) {
//show message
document.cookie = 'the_cookie;path=/;max-age=120;';
}
这会显示消息并设置 2 分钟的 cookie(如果之前未设置 cookie 或已过期)。