锚链接上的 `ping` 属性

Avatar of Chris Coyier
Chris Coyier

DigitalOcean 为您旅程的每个阶段提供云产品。 立即开始使用 200 美元的免费积分!

在看到 Stefan Judis 的帖子 之前,我并不知道有这个功能。

<a href="https://www.stefanjudis.com/popular-posts/" 
   ping="https://www.stefanjudis.com/tracking/">Read popular posts</a>

您可以通过 ping 属性为锚链接提供一个 URL,当单击该链接时,浏览器将向该 URL 发送一个 Web 请求(一个字面上的 PING)。 标头包含一个 ping-to 键,其值为链接的 href 值。

为什么? 数据。 知道人们在您的网站上点击了哪些外部链接不是很好吗?

即使您安装了 Google Analytics,默认情况下您也无法获得这些数据。 您需要编写一些自定义代码或使用类似其 autotrack 插件 以及 outboundLinkTracker。 无论您做什么,这都不是一件容易的事,因为为了使其工作,它必须

  1. 让 JavaScript 进行干预
  2. 阻止链接的默认操作(跳转到网站)
  3. 跟踪事件(向某处发送 ping)
  4. 然后告诉浏览器实际跳转到网站(window.location = …)

这是因为在外部链接点击时运行一小段 JavaScript 来 ping 您的跟踪服务是不可靠的。 您的网站正在卸载,并且新网站正在尽可能快地加载,这意味着 ping 可能没有机会运行。

据推测,使用 ping 属性,您不必执行发送 ping 的这套 JavaScript 操作(在页面卸载前发送),它将“自动工作”。 这是这项技术的巨大优势。 将复杂的想法转移到更低级别的语言中,使其更容易更好地工作,这真是太酷了。

不过,它也存在很多缺点。 您无法获得用于发送元数据的良好 API。 您能做的最好的事情是附加一个查询字符串以获取额外的数据(例如,链接是在页脚中还是在博客文章中?)。 但也许最大的限制是它仅适用于锚链接。 如果您正在构建一个非常严肃的事件跟踪系统,您希望它对任何类型的事件(不仅仅是点击)和任何类型的元素(不仅仅是链接)都适用。 因此,这几乎完全属于 JavaScript 的领域也就不足为奇了。

直接链接 →