我该如何跟踪小部件渲染?

时间:2009-04-23 19:38:14

标签: ruby-on-rails database flex statistics widget

我创建了一个小部件,我的网站的用户将嵌入他们的网站。我想跟踪窗口小部件呈现的次数以及引用URL。小部件是用flex编写的,我的后端是Rails。

这样做的一个显而易见的方法是让我的小部件对后端进行服务调用以注册命中。但是,当我的窗口小部件加载时,它会抓取配置XML。如果我添加另一个渲染服务调用,那么每个小部件渲染将有3个请求(一个用于获取swf,一个用于获取配置,一个用于渲染)。我可以使config.xml动态化,只是在那里处理渲染,然后返回XML ......但这对缩放是否有害?

另一种方法是将嵌入源URL指向处理命中的脚本,然后返回一个swf ...我很确定这是可能的。但我也不确定这是不是最好的方式。

我对此有任何专业建议感兴趣。专业人士如何有效地实施这个简单的系统?

谢谢!

2 个答案:

答案 0 :(得分:1)

你提到的所有三个选项似乎都是完全有效的方法,但是在返回.swf或.xml配置文件的同时注册这些命中看起来像是一件很聪明的事情,因为AFAIK大多数浏览器它们可以对同一主机发出的并发HTTP请求数量有一个相当低的限制(我认为它是两个或类似的东西)所以如果为了在浏览器中呈现某些东西而必须进行更多的请求,此限制必须等待第一个限制在启动之前完成。这也可能会让你的工作稍微减少。

我能想到的唯一区别是,返回.swf并不意味着Flash Player实例会渲染它,因此在返回config xml时“注册渲染”似乎会让你更加可靠地测量某人的浏览器已成功加载多少次并向他们显示此.swf(假设Flash应用程序在成功加载后将启动对此配置文件的请求)。

就扩展问题而言,无论你何时注册命中,它仍然需要在服务器上进行相同数量的处理(我无法想象这样的事情是非常高的),所以我不认为这是一个大问题。

答案 1 :(得分:1)

执行此操作的标准方法是从您的网站加载1px图片(“错误”),并使用您网站上的分析来跟踪统计信息。这项技术有很多创新,但它们都基于简单的1px图像加载,并使用相关的HTTP标头。

维基百科有一篇关于这项技术的好文章:

http://en.wikipedia.org/wiki/Web_bug

(此外,对并发HTTP请求的浏览器限制仅适用于发送到同一域的请求。您可以通过使用多个子域或任何其他技术来确保您的资源不是来自同一个域。)< / p>