2011-11-16 63 views
3

我有一个从ASP.NET MVC网站提供的JavaScript库。我想跟踪这个库的使用情况。我只关注追踪库加载到的页面,加载时间以及加载次数。我不需要跟踪其他分析。跟踪JavaScript文件的使用和使用情况

这里是我能想到的做到这一点的方法:

  1. 嵌入分析融入消费网页JavaScript文件被加载后。这是可能的,因为我的库将HTML元素注入耗用页面的DOM中。就隐私问题而言,这个图书馆实际上只是为了我所工作的组织的内部使用,所以我可能不必太担心这一点。我们使用Google Analytics。
  2. 设置一个ASP.NET MVC控制器,用于提供JavaScript文件并跟踪每个请求。我相信这就是Google在Google地图和其他一些图书馆中所做的工作。

我想知道是否有人对如何最好地实现这一点有任何一般性建议。我试图通过Google Analytics获得此设置,但GA报告中的页面网址并未显示请求页面的完整网址。看起来,GA认为某个跟踪代码的请求来自基本域。

+0

我想控制方法,或服务器日志,可能就不会追踪缓存的文件的请求。 –

+0

好点。我没有考虑过。 –

回答

4

你有没有考虑过让你的JavaScript文件创建一个图像变量并跟踪用法?

var img = new Image(); 
img.src = 'http://www.mysite.com/controller/action?t=' + new Date().getTime(); 

var img = new Image(); 
img.src = 'http://www.mysite.com/controller/action?url=' + escape(window.top.location) + '&t=' + new Date().getTime(); 

你不会有写入DOM,但图像将得到呈现在幕后。你可以通过传递你想要收集的任何其他变量来扩展它。

+0

我应该注意到变量“t”是一个时间戳,它会阻止页面的缓存。您还可以创建一个自定义路线,使用时间戳作为结构的一部分:www.mysite.com/images/{t}/1px.gif?u={url} –

+0

我喜欢简单。谢谢! –

1

在库写代码结束时,以当前url作为参数向服务器发出ajax请求。

例如:如果你使用jQuery,你可以做如下。

JS

.... 
other codes 
.... 
jQuery.ajax({ 
     url:'/home/Tracking_Url', 
     type:'POST', 
     data:{url:window.location+""} 
}); 

控制器动作

public Tracking_Url(string url) 
{ 
    //do something with url 
} 
+0

太好了。我将@Splash-X标记为答案,因为他首先回应。谢谢! –