需要建议使用PHP,Javascript和AJAX开发在线考试平台


Need advise developing an Online Exams Platform using PHP, Javascript & AJAX

我迫切需要建议使用PHP,Javascript和Ajax开发在线考试平台。

我的问题是我无法找出参加考试程序的正确方法,这是我的问题和我正在考虑的选项:

不确定我是否应该一次从数据库中加载所有问题并使用 java 脚本在它们之间切换,保存学生答案,然后使用 AJAX 提交结果,这样考试期间就不需要连接到服务器,这使得它更快,更重要的是,如果互联网出现故障,考试仍将运行, 是的,我们的互联网连接很糟糕。

还是我应该独立加载每个问题并将答案保存到表中并使用 ajax 加载另一个问题? 但是这样,如果连接速度变慢甚至更糟怎么办?

有人有什么想法吗?谢谢

如果我们将互联网连接不良视为问题,则第一种解决方案的优势大于第二种解决方案。但我认为,我们还可以考虑另外两个问题。

  1. 当地

首先,如果平台仅供内部使用,则最好从本地服务器运行它,避免连接问题,因为所有计算机都将通过LAN连接。在这种情况下,您可以应用您喜欢的解决方案,而不必担心净性能。

  1. 互联网

但是,如果您打算通过互联网使用该平台,最好的选择是复制有关答案的信息以使其防故障。使用AJAX调用加载所有问题(现在是最好的方法)后,您应该不时使用本地存储(http://www.html5rocks.com/it/features/storage)在Javascript中备份答案,因此,如果最终提交出错,您可以根据需要重试多次,甚至可以恢复信息,以防网络永久关闭并且浏览器已经关闭。

另一个好的做法可能是不时向服务器发送静默 AJAX 调用,并在测试进行时存储答案。这些调用不会填充与最终提交相同的数据库,而是临时数据库。它们更像是备份:如果网络变暗,PC关闭或任何其他类型的问题,您可以为用户恢复情况并恢复答案。

请记住,在本地存储和静默调用中,始终存储时间戳,以便您可以轻松判断保存操作发生的时间,并决定在重建考试面板页面时是信任本地存储还是服务器上的临时信息。

因此,您现在有三个不同的来源来存储您的答案:本地存储、临时表和实际结果表。这应该涵盖大多数失败情况,让您有更好的机会避免信息丢失。