0

我有一页有 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、标签 2、标签 3 或标签 4,我希望计时器仍然计算用户的秒数在那些页面上花费。

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

问题总结 我的问题的核心是如何在 cookie 中建立一个实时计数器?这样cookie值将每秒增加1。在我清除不同页面中的 cookie 之前,它不会停止。

我正在使用 PHP 来完成其余的代码

我感谢您的帮助。

4

2 回答 2

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

于 2013-04-08T21:34:12.220 回答
0

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

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

    $time_spent = time()-$_SESSION['start']; //on your tabs 
于 2013-04-08T20:15:33.663 回答