javascript - 什么时钟/计时器跟踪浏览器 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;
}
这会在浏览器中输出正确的未来时间:
我比较了设置为“自动”的系统时钟。
我们还假设浏览器没有关闭,并且网站访问者在网站上处于活动状态。
我的问题是:什么会跟踪这个过期时间?
浏览器内是否有时钟/计时器?
解决方案
似乎如果您在没有导航/刷新/打开-关闭选项卡的情况下打开浏览器,则无法跟踪到期日期。这将要求浏览器运行大量独立线程并对其进行跟踪是不现实的。所以cookie过期真的只适用于导航/刷新/打开关闭的时候。
推荐阅读
- html - 如何根据任何条件禁用 svg 标签?
- authentication - 在 cookie 中使用 jwt 传递用户 ID 真的安全吗?
- sqlite - Sqlite 返回随机 SUM 值
- c++ - 为什么范围 v3 库的排序函数不使用在自定义类型上定义的 operator< 而 std::sort 呢?
- java - 使用内部类进行多重实现继承
- python - python中虚拟环境的命名规则
- javascript - firebase/firestore 不工作,但 firebase/firestore/lite 是
- python - 让 Python 3 等待键盘输入
- odoo-14 - 即使在 odoo 14 中使用管理员登录也无法访问电子邮件
- java - 在 ubuntu tomcat 上找不到类 com.sun.ws.rs.ext.RuntimeDelegateImpl