【问题标题】:is there a way to time a visit to a site, disregarding moving through pages?有没有办法计算访问网站的时间,而不考虑在页面中移动?
【发布时间】:2011-06-17 09:54:57
【问题描述】:

我正在寻找一种方法来计算访问者停留在网站上的时间,同时在更改页面时不重新启动或中断计时器。

【问题讨论】:

    标签: php javascript mysql wordpress


    【解决方案1】:

    将初始访问时间存储在会话值中。以后对站点的任何访问都使用辅助会话变量来保存上次访问的时间,并据此计算您在站点上的时间。

    除非您使用 Ajax 更新会话值,否则用户可能会在您的网站上(在同一页面上)活跃 20 分钟,但它会显示为零长度访问。

    基本示例:

    <?php
    session_start();  
    if(isset($_SESSION['firstVisit']))
        $_SESSION['latestVisit'] = date();
    else
        $_SESSION['firstVisit'] = date();
    
    echo $_SESSION['firstVisit'] . " - " . $_SESSION['latestVisit']; 
    ?>
    

    【讨论】:

    • 嗯?不需要秒会话。
    • 只是一种存储您第一次访问该网站以及该网站上最近一次访问的方式。
    • 嗯,你的措辞“开始第二个会话变量”让我对你的实际意思感到困惑。
    • 为清晰起见进行了编辑。来源会显示我的意思:)
    【解决方案2】:

    您可以在用户请求第一页的那一刻开始会话。通过会话,您可以逐页跟踪用户。这样您就可以计算他们访问的第一页和最后一页请求之间的总时间。

    您还应该能够在页面卸载时发送 Ajax 请求,从而可以检测在单个页面上花费的时间。但是,如果他们在多个窗口/标签中浏览,则您的阅读结果是错误的,除非您能够以某种方式检测到页面焦点。

    将两者结合起来,你应该可以得到一个相当完整的画面。

    【讨论】:

      【解决方案3】:

      将数据保存在session中,用户注销时保存数据

      (如果用户没有注销,它不会被保存,但这应该不是问题)

      编辑:如果用户没有登录/注销,您必须捕捉会话何时终止并保存数据。在评估数据时,您必须补偿会话在它死亡之前的生存时间,例如5分钟或其他什么,然后减去它。会给你一个大概的数字,而不是用户查看网站的确切时间。

      【讨论】:

        【解决方案4】:

        您可以跟踪用户登录的时间,但如果您想要(未登录)用户停留的时间,我认为这是不可能的,因为有很多方法可以从一页到另一页

        【讨论】:

        • 一个大概的时间可以通过存储用户最后一次点击页面的时间来实现,但是如果你的页面像博客什么的,不知道有没有其他方法跨度>
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-21
        • 1970-01-01
        • 1970-01-01
        • 2012-06-05
        • 1970-01-01
        相关资源
        最近更新 更多