5

我们的网站开发团队在我们的 INTRAnet 上管理着许多网站(每个网站都有不同的虚拟 URL)。我们想要实现一些东西(代码片段),很容易添加 Application.cfm/OnRequestEnd.cfm 页面,该页面将在数据库中插入一条记录,跟踪页面、url、查询字符串、用户 ID 等 - 基本内容。插入记录没什么大不了的。我想知道的是从性能的角度来看,你们会推荐什么,以便我们不会在员工访问各个站点时遇到插入排队的瓶颈。我们不能使用 jQuery,因为不是每个站点都有相同版本的 jQuery,所以我们真的仅限于使用 Coldfusion——我想。

理想情况下,我们希望能够在我们的主服务器上创建一个主跟踪文件,并从我们所有其他站点引用该文件。然后,如果/当我们需要进行更新时,我们可以进行全局更改 - 有点像 Google Analytics 所做的那样,只是没有那么多细节。

在我们支持的所有网站上,我们的页面上都有我们的部门徽标。我考虑过在图像加载中建立一个跟踪过程,就像他们对电子邮件所做的那样。

如果您有更好的想法,对此的任何想法将不胜感激 - 我全神贯注。

更新
关于图像处理,我找不到来自 easycfm.com 的教程的原始链接,但我发现这里的代码似乎相同: http ://www.experts-exchange.com/Software/Server_Software/Web_Servers/ ColdFusion/A_2386-Track-your-Emails-using-coldfusion.html

4

2 回答 2

6

我会说你不应该尝试过早地优化它,直到你有理由这样做。如果你发现你在赛道上遇到了问题,那么你可以处理它。

创建一个 Logging CFC 并实现一个方法,该方法接收您希望记录的指标,然后将其包装成一条记录以插入数据库,并用于<cfquery>将它们写入数据库表。从 OnRequestEnd.cfm 调用函数。

我特别建议将其滚动到 Logging CFC 中,因为如果您以后需要更改日志记录方式的实现,您可以只更改日志记录方法的内部工作原理,而不必弄乱您的所有站点。

于 2013-03-28T22:53:28.510 回答
0

亚当卡梅隆的回答可能是你应该走的路。最重要的是,我建议将这些记录插入没有附加索引的表中。这将导致插入非常快。然后,您可以使用计划的数据库作业将这些数据移动到一个可以快速分析的规范化模式中。

我不会因为每个站点都有不同版本的 JQuery 就放弃使用 JavaScript。在 JQuery 存在之前,人们仍然能够完成工作,它只是一个 JavaScript 库。动态包含一个脚本文件是非常基本的 JavaScript,该脚本文件使用相关参数指向您的跟踪文件。

<script type="text/javascript">
    var script = document.createElement("script");
    var body = document.getElementsByTagName("body")[0];
    script.setAttribute("src", "http://www.yourdomain.com/trackingfile.cfm?" + yourparams);
    body.appendChild(script);
</script>

如您所见,不需要 JQuery。

于 2013-03-30T09:30:02.480 回答