4

在我正在开发的应用程序中,我必须存储某些特定用户保持登录到应用程序的时间,不幸的是,在 Web 应用程序中,用户可以通过多种方式注销。

  1. 用户单击注销。
  2. 用户会话到期。
  3. 用户关闭窗口。
  4. 用户在地址栏中键入另一个站点 URL。

第一个非常简单,因为应用程序可以控制注销过程。但在其他方面,它变得棘手。

你会怎么做来解决这个问题?

4

2 回答 2

7

在每个页面视图上,更新您的计数。如果他们注销,那么您就有了准确的衡量标准。如果他们导航离开,或任何其他方法,那么你最多的是他们在一页上的时间长度。

如果准确测量真的很重要,那么也许每分钟都有一个 AJAX“心跳”,但这很可能是矫枉过正。

于 2008-10-14T22:14:36.727 回答
1

对于#3 和#4,您可以在 window.onunload 事件上附加一些东西,让您有时间进行计算,但请注意您的代码足够快,以至于在发送 AJAX 请求之前页面不会完全卸载。

就#2而言,nickf建议的“心跳”可能是那里最好的解决方案。

于 2008-10-14T22:30:11.877 回答