【问题标题】:Client side timer for session in MVCMVC中会话的客户端计时器
【发布时间】:2017-06-17 03:59:24
【问题描述】:

我们有一个会话超时的 MVC 应用程序。我假设正在跟踪会话时间。

我需要在客户端显示一个可视计时器。

我查看了使用 jQuery 的示例,但这些示例主要是客户端,不与应用程序计时器通信。

向客户端获取会话时间以显示会话计时器的可视化表示的最佳方法是什么?

提前致谢。

【问题讨论】:

  • 如果你联系服务器,它会被重置,那么目标是什么?
  • 服务器实际上可能没有得到联系。如果用户在结帐页面上停留的时间超过 20 分钟,那么当他们最终提交时,他们的会话将已经过期。这可能会导致问题。

标签: javascript jquery asp.net-mvc session timer


【解决方案1】:

基本上,您的计时器必须位于客户端。 @SteveGreene 是正确的,如果您联系服务器,会话超时将被重置,因此如果您要长轮询以从服务器查找当前剩余时间,它实际上总是相同的,因为每个请求获取时间将重置超时。

您只需要知道超时时间,然后根据它设置客户端计时器。例如,默认超时为 20 分钟,因此在客户端您只需在页面加载 20 分钟时创建一个计时器。如果没有做任何事情来重置超时,那么当客户端计时器到期时,会话也会超时。

【讨论】:

  • 问题是超时将是站点范围的,而不是基于操作或 DOM 重新加载。这意味着客户有 20 分钟的时间来完成完整的交易。这意味着当他们在我们的网站上跳跃时。我可以看到如何使用操作结果调用将会话超时事件触发到控制器操作,但如果他们离开页面,我需要将计时器保持在最后一个间隔。饼干有用吗?我不知道 cookie 是否可以在时间戳方面变得如此精细。
  • 你把两个不同的东西混为一谈。会话超时是滑动的,不是绝对的。如果用户在站点中导航,他们会在每个请求中重置超时。换句话说,如果他们正在积极使用该站点,则永远不会发生超时。如果您需要确保必须在 20 分钟内采取某些行动,那么您必须自行跟踪。
猜你喜欢
  • 2013-08-22
  • 2011-06-14
  • 2017-04-01
  • 1970-01-01
  • 2019-04-22
  • 2014-07-05
  • 2011-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多