0

我知道有一些这样的问题,但问题更多的是关于这种具体情况。

我正在开发一个在线考试平台。测试是一组图像和归属问题。它托管在 Azure 上并使用 MVC 4。

如果用户进行了一半的测试并且浏览器崩溃或其他原因使其偏离测试并返回,我会多么喜欢它,它将提供恢复选项。

我自己有一个想法,但想知道是否还有其他选择。我正在考虑使用本地存储。当用户开始测试时,测试的信息保存在本地存储中,每次他移动到新图像时,它都会更新本地状态。然后,如果加载了测试播放器,它将检查是否有任何正在进行的测试可用。

我该怎么做?任何一个女巫类似的问题/解决方案。

4

2 回答 2

1

我不建议您将此信息存储在客户端浏览器上。用户可以访问本地存储、cookie 等......并且可以对其进行修改。您可以将测试开始时间存储在服务器上的数据库中。然后,每次用户向服务器发送请求以回答问题时,您都将验证测试是否仍处于活动状态或已超过最大允许时间。

于 2012-10-20T07:07:32.397 回答
1

本地存储不是一个好的选择,因为它特定于每个实例。这意味着如果您有两个 Web 角色实例(建议的最小值),那么每个实例都将拥有自己的本地存储。它们不是共享的,并且无法访问特定机器上的本地存储。

你真的有两个选择。您可以使用 SQL Azure 等数据库,或使用Azure 缓存。Azure 缓存可能更容易,因为序列化/反序列化复杂对象非常容易,但缺点是缓存仅在 72 小时内有效。如果缓存对象在 72 小时内未访问/更新,则会被清除。

于 2012-10-20T00:48:05.910 回答