Javascript 如何在Laravel中节省服务器的倒计时时间?

Javascript 如何在Laravel中节省服务器的倒计时时间?,javascript,php,timer,laravel-5.5,countdowntimer,Javascript,Php,Timer,Laravel 5.5,Countdowntimer,我正在开发一个在线考试网站,以Laravel5.5和Mysql为数据库,学生可以登录并在一段时间内进行在线考试 假设有一个持续时间为60分钟(3000秒)的考试 现在我所做的是跟踪考试倒计时,我每秒向服务器发送一个请求。我这样做是因为,如果在任何情况下网络丢失、断电或学生故意关闭计算机,那么我将有一个学生花费了多少时间(以秒为单位)的记录 所以下次当学生在同一台/不同的计算机上开始考试时,我可以用剩下的时间继续考试 这在学生人数较少的情况下效果很好 但当有150名学生一起参加考试时,服务器每秒会

我正在开发一个在线考试网站,以Laravel5.5和Mysql为数据库,学生可以登录并在一段时间内进行在线考试

假设有一个持续时间为60分钟(3000秒)的考试

现在我所做的是跟踪考试倒计时,我每秒向服务器发送一个请求。我这样做是因为,如果在任何情况下网络丢失、断电或学生故意关闭计算机,那么我将有一个学生花费了多少时间(以秒为单位)的记录

所以下次当学生在同一台/不同的计算机上开始考试时,我可以用剩下的时间继续考试

这在学生人数较少的情况下效果很好

但当有150名学生一起参加考试时,服务器每秒会收到150个请求。因此,服务器负载约为135(2个CPU)。我在WHM登记了

让我通知您,我的客户正在使用VPS,它有2个CPU处理器和4GB RAM

我的委托人说学生人数会增加。但增加服务器配置并不是一个可行的解决方案

因此,我的问题是如何跟踪倒计时并将该时间存储在服务器上,以便在考试因任何原因停止时,下次可以从停止点恢复考试。无论学生是否使用同一台计算机。


请指导我。

一个选项是给每个学生一个介于1-5之间的数字。然后每五秒钟更新一次时间。首先是1号的学生,然后是2号的学生,以此类推,这样你就把服务器的负担分成了5份,但是影响很小。如果一个学生在一小时的考试中多考了5秒,我认为这没什么。如果学生把网线插上,那么他就有更多的时间回答每个问题?或者如果他修改js代码给他更多的时间呢?更不用说净滞后了。我只跟踪服务器端的开始/结束时间,每10秒或15秒ping一次,以检查测试是否应该暂停。这会给他们每次更多的时间吗?请记住,重新加载问题并找到您的结束位置需要时间。在我看来,如果我等待问题加载,然后故意关闭我的WiFi卡,那么,@MichalBiedaImagine的净收益将为零,或者可能为损失-现在页面没有向您的服务器发送任何内容(服务器暂停测试)我有足够的时间在我的平板电脑/手机/书本/任何东西上浏览答案-然后在答案准备好后的几分钟,我重新连接WiFi,放下答案,加载下一个问题,然后执行相同的WiFi技巧。将逻辑留在客户端会给作弊者留下一个漏洞,但如果你真的想这样做,你可以使用WebSocket并ping它们/暂停连接丢失测试感谢你的建议,但为了保存下一个问题,请重新加载页面。这些测试也用于培训课程后的评估。所以作弊不是问题。我只想正确地显示计时器,因为在提交每个问题的答案后,页面会重新加载,然后我需要再次设置开始时间。为此,我希望服务器不应该挂起。因为若服务器挂起,那个么它并没有设置正确的时间。请建议我如何将当前计时器时间发送到服务器。