首页 > 解决方案 > 为什么 JavaScript 跟踪器使用 img 标签而不是 XMLHttpRequest?

问题描述

我正在尝试构建一个 javascript 分析跟踪器,如谷歌分析。我试图查看其他一些实现的来源,他们使用一个img或一个script标签来调用 API 后端进行跟踪。

我想知道他们为什么不使用XMLHttpRequest来提出请求?我的猜测是避免被反跟踪器阻止,但不确定。

有人知道吗?

标签: javascriptanalytics

解决方案


几个原因:

  • 遗留:例如,Google Analytics 以前是Urchin在“像素”跟踪是前端分析的事实标准时创建的

  • 浏览器兼容性:它们<img><script>实现都是相同的(只需添加标签),而XMLHttpRequest旧版浏览器并非如此。

  • 易于实现:只需添加<img>and<script>就可以了,XMLHttpRequest实际上您需要编写一些代码

  • 鲁棒性/防止阻塞<img>更难检测为与广告/跟踪相关,因为从另一个域加载具有复杂外观 URL 的图像实际上是常见做法(例如考虑 CDN)

  • Web/Email 跨平台:您可以使用 实现电子邮件跟踪<img>,但不能使用<script>(出于安全原因被阻止)。

  • JavaScript 支持:禁用 JS 后,像素跟踪仍然有效


推荐阅读