如何在JavaScript会话cookie中存储变量?

时间:2016-10-31 14:33:51

标签: javascript jquery session cookies

我想跟踪用户在其所有网页上花费在我的项目网站上的秒数,为此,我想使用JavaScript会话Cookie。 这是因为我将使用Github Pages来托管它,我无法访问PHP,也因为我想尝试使用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变量总是'未定义' 为了解决这个小问题,我真的想要得到任何指导。

1 个答案:

答案 0 :(得分:2)

我不会为此使用计时器。而是尝试在用户进入页面时设置时间戳,然后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);
}

Working example