用户在asp.net页面上进行了多长时间(自定义分析)?

时间:2009-10-06 02:57:58

标签: asp.net javascript analytics

我试图想出一种方法来衡量用户在我的ASP.NET应用程序中访问页面的时间。我将userid,pagename,pageenteredtime和pagelefttime存储在数据库中。每条记录都有自己独特的ID,称为featureuselogid。

目前,我可以跟踪用户何时使用服务器端的page_load功能进入页面。我存储了userid,pagename和pageenteredtime。

之后我陷入了困境,需要一些正确方向的指导。我需要记录用户离开页面的时间。我知道在javascript中有一个window.onbeforeunload函数,它将涵盖大多数情况(浏览器关闭,链接等)。

但是如何将featureuselogid传递给javascript?如果我能做到这一点,我想我可以通过javascript进行web服务调用并使用pagelefttime更新记录。

我走错了路吗?

提前干杯。

3 个答案:

答案 0 :(得分:2)

您必须在定期调用服务器的客户端上运行Javascript计时器。一旦呼叫未在预期时间记录,则表示用户已离开。 Woopra这样做,它可靠地工作。例如,有时人们在后台浏览器中加载页面数日,并且没有其他方法可以检测到它们仍然连接在一起。

笔记本电脑上的用户拉网线,移出Wifi区域等等,有太多场景,onbeforeunload事件将不再到达服务器。

答案 1 :(得分:1)

只需将featureuselogid放在页面中的隐藏字段中,使用唯一ID即可访问Javascript,或设置javascript变量。

话虽如此,我相信你将能够最可靠地发现Page_Load。您可以通过衡量Page_Load事件之间的时间来确定页面之间的时间。你不会得到浏览器关闭,但是IMO知道用户何时关闭浏览器并不是那么有意义。

答案 2 :(得分:0)

在ASP.net中渲染页面时,请包含一个javascript标记,用于将变量分配给服务器端脚本的值:

<script language="javascript">
    var JS_featureuselogid = <%= featureuselogid %>;
</script>

稍后在您的javascript代码中,您可以引用JS_featureuselogid变量并获取在页面构建期间注入其中的值。