javascript - JavaScript/PHP:跟踪用户在网页上的视频观看时间?
问题描述
我的客户提供了一个视频教程网站,教师和学生都可以在其中注册。应跟踪学生观看每个视频的视频时间,以便向教师提供反馈。该网站是使用纯 HTML/PHP/JS/MySQL 开发的。视频由视频托管商提供,没有提供特殊的 JavaScript-API。我知道没有办法确保有人真的在观看和理解视频的内容(除了提供考试/测验),所以“观看”是指结合以下技术事实来跟踪时间:
- 浏览器窗口可见(未最小化/后台选项卡)
- 视频正在运行(未暂停/停止)
由于视频的持续时间至少为 6 分钟,因此没有必要获得确切的秒数 - 一个近似值 +- 10 秒就足够了。我已经制定了以下方法,但我不知道是否有任何我还没有想到的主要缺点:一旦视频开始播放,每隔 10 秒就会触发一次间隔。如果视频的状态是“正在运行”并且 document.visibilityState 不是“隐藏”,则间隔会向数据库发出 ajax 请求,该请求会保存条目“user_id, video_id, datetime”。因此,cronjob 可以每天收集一次这些里程碑,并根据用户/视频计算总观看时间。当然,我必须确保这些条目之间的时间不超过某个值,在这种情况下,假设为 15 秒,
有谁知道更聪明和/或更安全的方法,或者您是否看到任何主要缺点
- 可靠性
- 功能(桌面/移动浏览器)
- 性能(数据库?)
感谢您与我分享您的想法!
解决方案
推荐阅读
- node.js - 未经授权的用户在被 401 错误拒绝后将多部分/数据发送到服务器事件
- android - 如何使用家庭图书馆与 android 中的家庭成员共享订阅?
- python - 如何在 mininet 上运行 python 文件
- php - 如何在 Cartalyst/Stripe Laravel 中捕获异常并重定向到我的 on 消息?我想在 catch 块中捕获错误
- react-native - 在反应导航中管理多个导航器(堆栈导航器和底部标签导航器)
- javascript - 如何获取特定复选框的位置编号
- python - 使用 Python scrapy 时错误的图像 src url
- excel - 在word中使用vba将文本添加到excel单元格
- blazor - 在 Blazor 中滚动时延迟加载下拉项目
- date - 将纪元时间转换为时间戳颤动