Asp.net mvc 如何计算网站的页面访问时间

Asp.net mvc 如何计算网站的页面访问时间,asp.net-mvc,logging,Asp.net Mvc,Logging,我正在构建一些自定义日志代码来跟踪人们如何使用我们的web应用程序。我是在ASP.NET MVC下的Site.master页面上做这件事的,但我的问题实际上更一般。我想做的是确定某人在特定页面上花费的时间 我可以跟踪人们何时访问某个页面,但显然我无法通过任何服务器端代码真正判断他们在页面上花费了多长时间。我现在做的只是这样计算: 页面A在时间T0被点击 页面B在时间T1被点击 因此,很可能有人在A页上花了T1-T0时间 现在,人们可以离开他们的电脑,或者别的什么,所以我现在有一个120秒的任意阈

我正在构建一些自定义日志代码来跟踪人们如何使用我们的web应用程序。我是在ASP.NET MVC下的Site.master页面上做这件事的,但我的问题实际上更一般。我想做的是确定某人在特定页面上花费的时间

我可以跟踪人们何时访问某个页面,但显然我无法通过任何服务器端代码真正判断他们在页面上花费了多长时间。我现在做的只是这样计算:

页面A在时间T0被点击 页面B在时间T1被点击 因此,很可能有人在A页上花了T1-T0时间

现在,人们可以离开他们的电脑,或者别的什么,所以我现在有一个120秒的任意阈值。如果T1-T0大于120,那么我只记录一个表示“未知”的令牌

这是可行的,但看起来很老套


有人有更好的建议吗?我不需要代码,只需要一个算法。

不幸的是,如果您只有页面访问时间,那么您所描述的方法几乎是实现这一点的唯一方法

但是,如果您可以支持更“ajaxy”的方法,那么您应该能够检测用户何时在您的页面上移动鼠标等,并向服务URL发送少量ping请求


这似乎需要做很多工作,但回报很小。

使用AJAX,当与页面发生交互时,您可以向服务器发送信息。这将使您能够更准确地计算时间,但这似乎有点过头了。

您需要根据日志数据生成此数据,并且其中包含一些假设,正如您已经注意到的那样。您记录的就诊间隔是就诊时间的最佳数据。定义页面访问的阈值(不同于站点访问),然后测量点击之间的差值,这样你就有了页面访问的时间。你也应该考虑推荐人。与上一页匹配的推荐人可以被视为页面访问和有效的时间差。来自不同资源的推荐人不应被视为页面访问的有效时间增量。

使用Ajax,您可以。为每10秒或任何时间设置一个JavaScript计时器,然后每次它达到零,调用一个webservice方法,该方法将为用户记录页面上最后一次的时间。

为您实时执行此操作。请注意,观看这些数据会让人极度上瘾