如何在Cookie中创建计时器?

时间:2013-04-08 19:34:21

标签: php jquery cookies timer stopwatch

我有一个页面有5个子页面(每个页面都有不同的页面链接)我想要做的是创建一个计时器来计算用户在电话上花费的秒数。

例如

main.php  << the landing page
tab1.php  << additional tab
tab2.php  << additional tab
tab3.php  << additional tab
tab4.php  << additional tab

第一次使用点击登陆页面“main.php”这里我需要启动一个计数器,如果用户点击选项卡1,tab2,tab3或tab 4我希望计时器仍然计算秒数用户花在这些页面上。

我使用了一个名为“runner”http://plugins.jquery.com/runner/的jQuery插件在我的页面上有一个计数器但是当用户切换到另一个标签时,计数器被重置。我唯一的问题是如何创建一个计数器,将值传递给其他选项卡而不会丢失计数器。

问题摘要 我的问题的核心是如何在cookie中构建一个实时计数器?这样cookie值就会每秒递增1。在我在另一页中清除cookie之前,它不会停止。

我使用PHP来完成剩下的代码

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

您可以在Cookie中存储开始时间并在清除之前阅读结束时间。或者使用会话来做到这一点?

    if(!isset($_SESSION['start'] ))$_SESSION['start'] = time(); //on your landing page 

    $time_spent = time()-$_SESSION['start']; //on your tabs 

答案 1 :(得分:0)

您可能正在寻找使用Javascript设置Cookie的方法。如果你真的想,你可以每秒致电createCookie()。您还必须跟踪开始时间以获得在页面上花费的实际时间。但这只是为了帮助您走上正轨。无论如何肯定有更好的方法。请听其他评论。

var unixTimestamp = Math.round(new Date().getTime() / 1000);
window.setInterval("createCookie('myCookie', unixTimestamp)", 1000);    

function createCookie(c_name, value) {
    var expires = "";
    document.cookie = c_name + "=" + value + expires + "; path=/";
}

function getCookie(c_name) {
    if (document.cookie.length > 0) {
        c_start = document.cookie.indexOf(c_name + "=");
        if (c_start != -1) {
            c_start = c_start + c_name.length + 1;
            c_end = document.cookie.indexOf(";", c_start);
            if (c_end == -1) {
                c_end = document.cookie.length;
            }
            return unescape(document.cookie.substring(c_start, c_end));
        }
    }
    return "";
}

已在https://stackoverflow.com/a/4825695/407697

上讨论并发布