【问题标题】:What is the most efficient way to log user action and page viewes?记录用户操作和页面浏览量的最有效方法是什么?
【发布时间】:2011-11-02 17:49:25
【问题描述】:

我创建了一个网站,用户可以在其中添加条目、关联不同表中的行等等。我需要跟踪用户对分数表执行的操作。

我还需要跟踪页面浏览量。

我正在尝试找出最有效的跟踪/记录方式。

最好:

  • 在此处创建新数据库并添加记录?
  • 在与网站相同的数据库中添加记录?
  • 使用 javascript 通过 URL 将参数发送到日志服务器?

还有什么好的方法吗?

我不知道我的网站在启动时会有多少用户,但希望我会有一点流量。

【问题讨论】:

    标签: php javascript mysql logging statistics


    【解决方案1】:

    您可以制作带有行的数据库表:

    • 日期和时间
    • IP 地址
    • 当前网址
    • 引荐网址
    • 序列化 $_GET
    • 序列化 $_POST
    • 序列化 $_COOKIE

    如果您想跟踪流量,这非常有用。

    伪代码:

    if(!$bot) { 
       $visit = Array(
         'date' => date("Y-m-d H:i:s"),
         'ip'   => $_SERVER['REMOTE_ADDR'],
         etc ...
       );
       $sql = "INSERT INTO visits (`".join("`,`",array_keys($visit)."`) VALUES ('".join("','",array_values($visit)."')";
       ...
    }
    

    使用相同的数据库,因此您与 mysql 服务器的连接将更少。

    在 PHP 脚本中执行(mysql_connect 之后是个好主意),我相信每次访问一次 INSERT 对您的机器来说并不是什么大挑战。

    【讨论】:

    • 是的,但这应该与网站在同一个数据库上吗?或者在另一个用于减少 CPU 的数据库上?我应该只用 javascript og 只用 PHP/SQL 吗?
    【解决方案2】:

    如果您想要可靠的结果,我不会使用 Javascript,因为用户可能已禁用该功能,或者可能会尝试操纵它以某种方式作弊。

    理想情况下,我会使用单独的架构,因为这样可以实现最佳扩展(您将来可能希望将该架构拆分到单独的服务器上进行处理),尽管这会使在两个架构之间连接数据变得困难。您可以从同一架构中的新表开始(只要您的代码被很好地封装,您以后总是可以将日志记录到单独的表中)。

    【讨论】:

      【解决方案3】:

      我建议寻找一种异步解决方案(以最大限度地减少对最终用户的性能影响)并与整体访客数据解决方案集成(以便可以组合各种指标的报告)。例如,Google Analytics 提供Event Tracking,以便您可以在其标准指标中添加访问者、页面浏览量等任意用户操作数据,如您所描述的。

      【讨论】:

      • 我一直在查看Google Analytics API,但不知道如何使用它来获得我想要的东西。 Imidiate 关注的是跟踪我网站上浏览次数最多的商店和品牌。典型的 URL 是 mysite.com/store/?storeid=23&name=some_name
      • 我只是以 GA 为例。但它确实有为商店和品牌量身定制的解决方案:Custom Variables
      【解决方案4】:

      您是否考虑过使用 HTML5 网络存储:http://www.w3schools.com/html5/html5_webstorage.asp

      您可以使用 javascripts 会话存储对象(数据存储在键/值对中)将所有页面活动存储为该对象的属性,然后将此信息与注销操作一起发布到后端脚本,后端脚本进而维护相应的数据库条目,我相信通过在一个最终请求中发送页面活动信息,您可以避免不必要的 http 请求以及所有开销。

      您应该在每次用户登录时重新初始化对象。

      【讨论】:

        猜你喜欢
        • 2017-11-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-03-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多