Asp.net MVC 服务器端计时器

本文关键字:计时器 服务器端 MVC net Asp | 更新日期: 2023-09-27 18:32:30

我正在创建一个在线测验应用程序,需要服务器端计时器。例如,如果用户打开另一个浏览器或刷新页面或离开和返回时间应该是正确的。

现在我正在使用jquery计时器,每5分钟发送一次ajax请求以将适当的信息存储到数据库中。此外,当用户回答问题时,我会立即出于相同目的再次发送 ajax 请求。

我应该改用信号器吗?在 mvc 中处理服务器端计时器 asp.net 哪种更正确的方法?

Asp.net MVC 服务器端计时器

只要您有一个会话,您就可以简单地存储用户开始在会话状态下参加测验的时间戳。

您可以通过查看该事件的时间戳减去用户参加调查时的时间戳来判断任何未来事件的时间。

示例(服务器端代码):

if (Session["startTime"] == null)
{
    Session["startTime"] = DateTime.Now;
}
var ticksRemaining = DateTime.Now - Session["startTime"];
// Use ticksRemaining to populate the start value for the count-down timer
// Works just fine even if they reload the page or open a new browser tab.
// You won't catch if they open a brand-new browser and start a new session,
// but that's a different kind of problem.