我想跟踪用户在我的项目网站上的所有页面上花费的秒数,为此我想使用 JavaScript session cookie。
这是因为我将使用无法访问 PHP 的 Github Pages 托管它,还因为我想尝试使用 JS cookie(这是我第一次这样做)。
为了计算我使用以下内容的秒数:
var time_spent = 0;
setInterval(function(){
++time_spent;
$('#counter_container span').html(time_spent);
}, 1000);
上面的代码在计数器所在的地方工作,但正如预期的那样,每次我更改页面时都会重置。
我试过以下列方式使用 js-cookie 库 ( https://github.com/js-cookie/js-cookie ):
Cookies.set('time_spent', time_spent);
var counted_time = Cookies.get('time_spent');
console.log(counted_time);
但是无论我怎么尝试,counted_time
变量总是“未定义”。
我真的很感激我能得到任何指导来解决这个小问题。
最佳答案
我不会为此使用计时器。而是尝试在用户进入页面时设置一个时间戳,然后 onbeforeunload
获取持续时间并将其添加到存储在 cookie 中的值中。像这样:
var load = new Date();
window.onbeforeunload = function() {
var leave = new Date();
var duration = leave.getTime() - load.getTime() / 1000;
var counted_time = parseFloat(Cookies.get('time_spent')) || 0;
Cookies.set('time_spent', counted_time + duration);
}
关于javascript - 如何在 JavaScript session cookie 中存储变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40344313/