Das `ping`-Attribut bei Ankerlinks

Avatar of Chris Coyier
Chris Coyier am

DigitalOcean bietet Cloud-Produkte für jede Phase Ihrer Reise. Starten Sie mit 200 $ kostenlosem Guthaben!

Ich wusste nicht, dass das existiert, bis Stefan Judis' Beitrag

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

Sie geben einem Ankerlink über ein `ping`-Attribut eine URL und der Browser ruft diese URL mit einer Webanfrage (einem buchstäblichen PING) auf, wenn darauf geklickt wird. Die Header haben einen `ping-to`-Schlüssel mit dem `href`-Wert des Links.

Warum? Daten. Wäre es nicht schön zu wissen, auf welche externen Links Leute auf Ihrer Website klicken?

Selbst wenn Sie Google Analytics installiert haben, erhalten Sie diese Daten nicht standardmäßig. Sie müssten etwas Benutzerdefiniertes schreiben oder ein Plugin wie ihr autotrack-Plugin mit dem outboundLinkTracker verwenden. Was auch immer Sie tun, es ist nicht trivial, da es, um zu funktionieren, muss

  1. JavaScript eingreifen lassen
  2. Die Standardaktion des Links (zum Aufrufen der Website) verhindern
  3. Das Ereignis verfolgen (irgendwohin einen Ping senden)
  4. Dann den Browser anweisen, tatsächlich zur Website zu gehen (window.location = …)

Das liegt daran, dass das Ausführen eines kleinen JavaScripts, um Ihren Tracking-Dienst anzupingen, bei einem externen Klick unzuverlässig ist. Ihre Seite wird entladen und die neue Seite so schnell wie möglich geladen, was bedeutet, dass der Ping möglicherweise keine Chance hat, ausgeführt zu werden.

Vermutlich müssen Sie mit dem `ping`-Attribut diesen kleinen JavaScript-Tanz des Sendens des Pings vor dem Entladen der Seite nicht durchführen – es wird „einfach funktionieren“. Das ist ein großes Plus für diese Technik. Es ist so cool, komplexe Ideen in Low-Level-Sprachen zu verschieben, die einfacher und besser funktionieren.

Es gibt jedoch viele Nachteile. Sie erhalten keine schöne API zum Übergeben von Metadaten. Das Beste, was Sie tun könnten, wäre, eine Query-String für zusätzliche Daten anzuhängen (z. B. befand sich der Link in der Fußzeile? oder in einem Blogbeitrag?). Aber die vielleicht größte Einschränkung ist, dass es nur für Ankerlinks gilt. Wenn Sie eine wirklich ernsthafte Ereignisverfolgung entwickeln würden, möchten Sie, dass sie für jeden Ereignistyp (nicht nur Klicks) auf jedem Elementtyp (nicht nur Links) nützlich ist. Es ist also nicht besonders überraschend, dass dies fast ausschließlich die Domäne von JavaScript ist.

Direkter Link →