2010-01-27 78 views
0

我已经使用了一个jQuery script为了在我正在做的php页面上有一个倒计时脚本,但我也想根据用户所花费的时间在其中有一个评分系统回答一些问题。基于Javascript的时间评分系统

我正在使用一些拖放操作,然后点击某个链接进入图像地图 - 这是网页中唯一正确的链接 - 在我使用此倒计时的三个页面中,但我希望一次用户已完成拖动或点击链接,只需在用户点击“提交”按钮时就可以获得倒计时的号码......但我甚至不确定我是否可以做到这一点。

另外,我可以使用任何倒计时脚本,让我得到当用户点击提交按钮时显示的实际数字?

非常感谢大家提前!

回答

2

只有使用javascript倒计时进行显示时,才能信任客户端。

保持倒计时服务器端。将其存储在SESSION变量或数据库中。

由于客户端可以更改它,因此Javascript不安全。我可以将你的页面保存在我的机器上,打开它并修改计时器的报告方式,你会得到一个完全不同的时间。我也可以使用浏览器地址栏更改变量。客户端始终可以在JavaScript中始终更改任何内容,并且您必须绝对必须依靠服务器来保证用户的诚实。

+0

这是真的,但取决于计数器用于什么可能并不重要。例如,如果有人使用这种设置来收集一些可用性度量标准,那么“作弊”(可能很少见)不会成为严重问题。 如果您向真正快速点击“提交”的用户提供优惠券,那么我同意您不想相信客户端代码! – Pointy 2010-01-27 18:43:08

+0

那么他说他是基于计时器生成分数的,对其他用户来说,让这些作弊者利用javascript计时器是不公平的。 – Malfist 2010-01-27 18:54:24

+0

首先,非常感谢您的回答!我的应用程序将只是一个简单的原型,它仅仅适用于大学的一个小型项目,它针对那些对JavaScript没有任何认真理解的孩子,因此安全问题不是什么大问题。 但是,你完全正确的事实是,我应该在服务器端使用倒计时,这是因为安全问题,并且这样使用存储在$ _SESSION中的值以便计算得分了! – noloman 2010-01-27 21:37:21

0

为什么不只是当你想要定时器启动时隐藏时间(作为一个数值),然后当你想知道它有多长时间时检查差异?换句话说,你已经拥有了客户端计算机的时钟,因为这就是时钟的功能。只要记住拖动完成时(或任何时间点作为参考)的时间,然后再次在提交按钮的事件处理程序中检查时间。