我们正在实施一个AngularJS应用程序,该应用程序向用户显示问题并计算正确答案的数量。测试严格限制在20分钟。但是有一些棘手的要求:
20分钟超时的错误不得超过2秒,即使对于Android 2.3平板电脑或iPad 2等不那么快的设备也是如此。
更改计算机的本地时间不得影响超时结果。当检测到这样的变化时,我们不能将用户作为骗子踢出去:它可能也是由诚实的NTP更新引起的。
如果用户界面滞后,必须通过不断滴答的倒计时提醒用户剩余时间,这不应累积错误。
-
我尝试了一些不起作用的方法:
windows.performance.now
:几乎没有在任何地方实施(移动Safari是必需的)是否可以一次实施所有要求?
答案 0 :(得分:0)
您应该尝试使用$interval
。
查看该页面上的底部示例。
答案 1 :(得分:0)
首先,你需要一些后端,为你计算。如果您完全在客户端管理您的柜台,重新加载该网站将杀死该柜台。
您最初可以将计数器与后端同步,并在客户端计数。 20分钟到期应该由后端发送,可能使用服务器发送的事件或nodejs。
通过将真实计数器移动到后端,您将消除对客户端作弊或滞后的任何可能影响。
为确保计数器正确,您可以在后端与后端同步。