首页 > 解决方案 > 什么时钟/计时器跟踪浏览器 Cookie 到期日期?

问题描述

我有一个 cookie 从现在开始设置为在 1 分钟后过期,但是,在 cookie 本身从浏览器中删除之前,它需要 1:50 的时间。

这是我们设置cookie的方法:

setCookie: function(key, val, ttlInMinutes) {
  var expires = '';
  if (ttlInMinutes > 0) {
    var date = new Date();
    date.setTime(date.getTime() + (ttlInMinutes * 60 * 1000));
    expires = '; expires=' + date.toGMTString();
  }
  var domain = '';
  if (SnapABug.getDomain()) {
    domain = '; domain=' + SnapABug.getDomain();
  }
  var other = '';
  if (secureCookies) {
    other = '; Secure';
  }
  document.cookie = key + '=' + val + expires + '; path=/;' + domain + other;
}

这会在浏览器中输出正确的未来时间:

在此处输入图像描述

我比较了设置为“自动”的系统时钟。

我们还假设浏览器没有关闭,并且网站访问者在网站上处于活动状态。

我的问题是:什么会跟踪这个过期时间?
浏览器内是否有时钟/计时器?

标签: javascriptcookiesbrowser

解决方案


似乎如果您在没有导航/刷新/打开-关闭选项卡的情况下打开浏览器,则无法跟踪到期日期。这将要求浏览器运行大量独立线程并对其进行跟踪是不现实的。所以cookie过期真的只适用于导航/刷新/打开关闭的时候。


推荐阅读