【问题标题】:How do I know how long a user or a single IP address spent on a page of my site?我如何知道用户或单个 IP 地址在我的网站页面上花费了多长时间?
【发布时间】:2013-01-05 22:30:24
【问题描述】:

我如何知道用户或单个IP address 在我的网站页面上花费了多长时间? 我可以使用JavaScript的任何事件吗?

【问题讨论】:

    标签: php javascript javascript-events time


    【解决方案1】:

    这就是Google Analytics 的用途。它跟踪您网站的访问者并向您报告统计信息,例如访问时长。他们甚至offer an API 来帮助您获取这些信息。

    【讨论】:

    • 您可能想要扩展一点。当它回答时,它读起来更像是一条评论。
    • 最重要的是,它根本不是答案。
    【解决方案2】:

    在您的应用程序中实现

    • 当用户加载页面时,他们的“最后一页加载时间”会在数据库中更新。
    • cron 脚本每分钟运行一次。它会查找“最后一页加载时间”在最后一分钟内的用户。
    • 为找到的每个用户增加“在网站上花费的时间”。

    通过这种方式,我可以精确到分钟跟踪用户。只需除以 60 即可得到小时数。

    否则

    Google Analytics。您可以查看它的功能here

    【讨论】:

    • 当用户关闭浏览器时会发生什么?您是否认为他们仍在查看页面?你如何区分它们?
    • cron 作业会处理它。它每分钟运行一次。它检查用户是否在系统中。当用户不在系统中时,您可以在他离开时更新时间。
    • 如果用户只是长时间(超过一分钟)查看页面,您怎么知道他们正在这样做?如果页面已加载,则无法判断他们在离开前查看了最后一页多长时间?
    • 这就是我们使用 cron 作业每隔一分钟更新一次数据库的原因。它会跟踪所有内容。
    • 从服务器端看不到浏览器,所以不知道页面是否还在显示。
    【解决方案3】:

    我将安装Redis,它跟踪由IP address、USERAGENT 和登录信息(如果有的话)组合创建的特定哈希。

    在 Redis 中使用时间戳保存内容(使用哈希或任何你喜欢的东西),然后在用户注销或离开站点以获取外部链接或卸载页面时添加“告别”时间戳。

    【讨论】:

      【解决方案4】:

      使用 Ajax 将 keep-alive 信息发送到您的后端。将其保存为数据库中的会话数据。

      会话数据可以保存用户正在观看和上次活动的当前页面。使用例如setInterval 每 x 秒发送一次保持活动信息(取决于分辨率需求)。

      不需要cron...

      【讨论】:

        猜你喜欢
        • 2020-12-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-22
        • 1970-01-01
        • 2020-08-04
        • 2011-07-22
        • 1970-01-01
        相关资源
        最近更新 更多