用户友好的视频审查与锁定

时间:2011-01-04 14:47:56

标签: php jquery mysql session-timeout onbeforeunload

我们有一个jquery / php / mysql系统,允许用户登录并查看系统构建的视频以供在线查看。当用户开始查看视频时,视频会被标记为这样。但是现在我们已经陷入了基于浏览器的经典应用程序问题,用户导航或关闭浏览器而未完成审核。然后该视频将进入不断被审查的状态,但从未完成,并且从未重新进入队列。

我们拥有的选项是:

  • 构建一项服务(我们已有其他人)查找超出持续时间边界的审核会话,并将其重置回队列。
  • 在用户登录时重置持续时间边界之外的审核会话。实质上,如果用户锁定视频以供审核,则会在下次登录时解锁。
  • 向我提出的建议是使用php / apache会话长度并在到期时重置任何挂起的审核作业。我甚至不知道在哪里实现这个,因为这是共享服务器上的一个项目,因此它不应该是apache配置,但重置机制需要知道数据库凭据才能重置它。 ..
  • 每个人都讨厌的最糟糕的解决方案是阻止用户使用javascript导航,问“你确定吗?!”

这个系统被一些受雇的评论者使用,所以我不是在这里与公众打交道,但是我不能阻止用户共享登录以便更快地进行审查,这会淘汰上面的第二个选项,因为它会使用相同的登录信息解锁其他人正在审核的视频。

3 个答案:

答案 0 :(得分:1)

有两个不错的选项,不会对您的服务器征税。之一:

  1. 每小时运行一次cron-job,查找超出持续时间边界的审核会话。这具有对最终用户透明的优点。但如果你不小心,可以杀死一个活动的会话(假设用户在多个标签中运行)。

  2. 阻止用户使用JS导航。老实说,这就是我要做的事情,因为用户正在查看视频(如果他们只是查看它,那将是不好的,但因为他们知道他们应该采取行动,所以没关系)。只需说如果你现在离开,评论将被取消,你确定吗?

  3. 老实说,我会选择#2。 SO使用它,它在这里运作良好。它不适用于所有页面,只有那些正在进行主动审核的页面......

答案 1 :(得分:0)

当一个人在一个页面上审阅单个视频时。您可以捕获JavaScript卸载事件,该事件将在页面卸载并且客户端离开页面时触发。您可以更改该视频的状态,甚至可以显示对话框并让用户决定。

也许乒乓球系统可能有所帮助。在后面,您可以通过标识将AJAX调用绑定到视频。当该活动停止时,用户停止。后台进程可以查找最新的ping,例如,一小时前,更改它的状态。

答案 2 :(得分:0)

您的第一个选择是您最好的选择。您可以在页面上有一个javascript计时器,在浏览器窗口打开时更新视频的lastestActivity记录所以您不会进入审核的角落,这需要花费太长时间,解锁器会过早地释放锁定。

选项2存在问题有几个原因,有些已经提到,但考虑到审核人可能几天没有登录(休假?)会在不必要的时间内解锁视频。

选项4(Javascript onBeforeUnload)在浏览器崩溃,操作系统崩溃或电源故障的常见情况下,不会涵盖您。但这是你可以实施的东西。