2009-06-18 18 views
1

在ASP.NET MVC中,什么是一种很好的方式(首选方式)来计算用户在特定页面上的时间有多长?例如,我希望用户选择一些内容,然后只允许用户执行30秒的操作。良好的联系或参考一本书的页面将不胜感激。在ASP.NET MVC,初学者中计时用户访问

在此先感谢!

回答

3

您可以随时了解用户何时去过哪里以及他们在那里呆了多久(或者在平衡支票簿的同时打开页面......您会明白)。问题是你需要某种形式的客户端控制器让他们看到XYZ 30秒......然后将它们重定向到他们可以看到的下一页。因此,如果您希望用户在X时间内查看资源,则需要使用JavaScript客户端计时器,以便在时间到期时将其从资源中拿走。这可以通过静态编写到客户端的时间来完成(可以由客户端进行更改),也可以通过向服务器发出AJAX请求来查看时间是否已过期。或者可以使用嵌入式Flash播放器完成。这里的关键在于你的服务器端没有你需要的那么多的客户端的能力。大多数测试网站部署这种客户端JavaScript的某种形式来跟踪用户正在做什么,何时以及多久!

+0

+1 - 救了我很多的打字 – 2009-06-18 21:43:59

1

一个非常简单的方法是将上次用户在页面上的时间存储在数据库中 - 表中可能包含字段UserID,PageTimeStamp。每当用户试图做任何你只想要允许的时间为30秒时,如果时间已过或没有,就检查数据库。 (对于如此短的时间30秒,数据库可能有点太慢了,虽然......取决于您对精度的要求,我猜...)。

1

你可以使用JavaScript的setTimeout()功能:

var timeOut = function() { 
    alert('Time is up!'); 
} 

setTimeout (timeOut, 30000); 

或者你可以使用一个<meta> tag

<meta http-equiv="refresh" content="30;url=http://www.example.com/time-is-up.html">