【问题标题】:Efficiently recording views on website有效记录网站浏览量
【发布时间】:2011-12-09 06:49:45
【问题描述】:

我在我的网站上安装了 JWplayer,并希望记录和存储我的视频获得的观看次数。

我已经拥有了在有人点击播放后将数据存储到我的数据库中所需的所有 javascript 和 ajax 代码。但是我觉得每次有人播放视频时在数据库中增加一个数字是低效的。

解决这个问题最好最有效的方法是什么?

谢谢。

【问题讨论】:

  • 您有权访问服务器的日志文件吗?如果是这样,那就是答案。
  • 为什么你“觉得”效率低?
  • @webbiedave 我认为如果我可以每隔几分钟或几小时一次转储所有数据集,那么建立大量数据库连接将浪费资源。

标签: php view count jwplayer


【解决方案1】:

几个月前我问过一个类似的问题,但它与广告有关。我想知道跟踪广告渲染的最佳方式,以便准确地向客户收费。我得到的回应是使用访问日志。因此,我最终编写了一个解析器,从服务器日志中推断出所有广告并导入表格以供查看报告。

如果您打算使用访问日志作为跟踪此类信息的来源,请注意一些事项。 Logrotate,请确保在 logrotate 覆盖日志文件之前提取数据。我不是真正的系统专家,但我设置了我的 logrotate,以便每天午夜时日日志文件都会移动到一个新位置。

访问日志的另一个好处是,如果客户(或任何人)质疑您的数字,您可以参考源日志文件并证明您的数字没有虚报。

-- 编辑--

访问日志条目示例:

# If you can extrapolate videos from your path, then your parser has something to
# hook into (videos in path), and your done
127.0.0.1 - - [08/Dec/2011:22:47:25 +0000] "GET /path/to/your/videos/video1.wmv HTTP/1.0" 200 57530 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"

# Or, you could append a flag to the video url, and have your parser hook into the flag
# for this example 'videoPlayed'
127.0.0.1 - - [08/Dec/2011:22:47:25 +0000] "GET /path/to/your/videos/video1.wmv?videoPlayed=1 HTTP/1.0" 200 57530 "-" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2"

【讨论】:

  • @Dan:我用一些示例访问日志条目更新了帖子。日志文件是httpd自动写入的,试试看/var/log/httpd目录。
  • 所以在我的情况下,我必须创建自己的日志文件并写入它?我应该使用特定类型的格式吗?
  • @Dan:不,httpd (apache) 会为您创建日志文件,这就是为什么使用它比编写一些专有解决方案更好的原因。您甚至可以根据自己的喜好格式化日志文件。基本的谷歌搜索返回了一个不错的起点; cyberciti.biz/faq/apache-logs.
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-07-31
  • 2012-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-01
相关资源
最近更新 更多