我们有一个jquery / php / mysql系统,允许用户登录并查看系统构建的视频以供在线查看。当用户开始查看视频时,视频会被标记为这样。但是现在我们已经陷入了基于浏览器的经典应用程序问题,用户导航或关闭浏览器而未完成审核。然后该视频将进入不断被审查的状态,但从未完成,并且从未重新进入队列。
我们拥有的选项是:
这个系统被一些受雇的评论者使用,所以我不是在这里与公众打交道,但是我不能阻止用户共享登录以便更快地进行审查,这会淘汰上面的第二个选项,因为它会使用相同的登录信息解锁其他人正在审核的视频。
答案 0 :(得分:1)
有两个不错的选项,不会对您的服务器征税。之一:
每小时运行一次cron-job,查找超出持续时间边界的审核会话。这具有对最终用户透明的优点。但如果你不小心,可以杀死一个活动的会话(假设用户在多个标签中运行)。
阻止用户使用JS导航。老实说,这就是我要做的事情,因为用户正在查看视频(如果他们只是查看它,那将是不好的,但因为他们知道他们应该采取行动,所以没关系)。只需说如果你现在离开,评论将被取消,你确定吗?。
老实说,我会选择#2。 SO使用它,它在这里运作良好。它不适用于所有页面,只有那些正在进行主动审核的页面......
答案 1 :(得分:0)
当一个人在一个页面上审阅单个视频时。您可以捕获JavaScript卸载事件,该事件将在页面卸载并且客户端离开页面时触发。您可以更改该视频的状态,甚至可以显示对话框并让用户决定。
也许乒乓球系统可能有所帮助。在后面,您可以通过标识将AJAX调用绑定到视频。当该活动停止时,用户停止。后台进程可以查找最新的ping,例如,一小时前,更改它的状态。
答案 2 :(得分:0)
您的第一个选择是您最好的选择。您可以在页面上有一个javascript计时器,在浏览器窗口打开时更新视频的lastestActivity记录所以您不会进入审核的角落,这需要花费太长时间,解锁器会过早地释放锁定。
选项2存在问题有几个原因,有些已经提到,但考虑到审核人可能几天没有登录(休假?)会在不必要的时间内解锁视频。
选项4(Javascript onBeforeUnload)在浏览器崩溃,操作系统崩溃或电源故障的常见情况下,不会涵盖您。但这是你可以实施的东西。