我正在制作调查问卷,我想保存用户已完成的问题数量和可用问题的数量。我知道如何计算这些值,但每次用户要求显示此信息的页面时(我经常这样做),我都不想运行数据库。
我考虑过在会话中保存它,但问题是会话在身份验证之前到期,因此信息可能会丢失,但用户仍然会登录。
有什么建议吗?
编辑:我忘了提到我在服务器上工作,我自己无法指定会话超时。此外,当用户回答问题时,必须更新已回答问题的数量。答案 0 :(得分:0)
关于缓存和ASP.NET的非常有用的资源是http://msdn.microsoft.com/en-us/magazine/gg650661.aspx
由于您无法指定会话超时,请使用Cache
class - 它支持几种不同的机制来何时丢弃缓存的项目......
编辑 - 根据评论:
使用缓存,您应该实现“直写” - 舍入 - 即始终更新缓存和数据库,这意味着缓存始终是正确的,并且在应用程序启动初始加载后,任何读取都不会到达数据库。
另一种选择是更新数据库并使缓存项无效...在下次读取访问时,您将获得“缓存未命中”并通过点击数据库并将结果保存到缓存中来处理...这样您就可以数据库用于读取最坏情况和写入时间...这种模式只有在读取的内容多于写入时才有用...
答案 1 :(得分:0)
您可以考虑增加会话超时。
答案 2 :(得分:0)
会话通常在每次向服务器发出请求时进行扩展,因此当有人使用调查问卷时,请定期使用JavaScript向服务器发送请求以确保会话未结束。