Het `ping` attribuut op ankerlinks

Bronknooppunt: 806494

Dit bericht maakt deel uit van mijn Vandaag heb ik geleerd serie waarin ik al mijn lessen op het gebied van webontwikkeling deel.

Een PR op de MDN-compatibiliteitsgegevensopslagplaats viel mij vandaag op. Het doel van het pull-verzoek was om de ping attribuutondersteuning voor Safari. Ik heb dit attribuut nog nooit gezien โ€“ laten we eens kijken!

De ping attribuut op ankerelementen

Het ankerelement ping attribuut accepteert een door spaties gescheiden lijst met URL's. Wanneer een anker ping-URL's definieert en iemand erop klikt, verzendt de browser een POST verzoek naar deze opgegeven URL's. Deze functionaliteit kan handig zijn als u wilt bijhouden en analyseren hoe gebruikers omgaan met uw site.

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

Om het in actie te zien, opent u uw ontwikkelaarstools en klikt u op de onderstaande link.๐Ÿ‘‡

Lees populaire berichten

En inderdaad, wanneer u het netwerkpaneel opent in de ontwikkelaarstools (schakel โ€œpreserve logโ€ in om het verzoek te zien nadat de browser naar een nieuwe URL is genavigeerd), ziet u een verzoek naar de gedefinieerde URL vliegen nadat u op de โ€œping-linkโ€ hebt geklikt.

Verzoekheaders inclusief een "PING"-verzoekpayload en een "ping-to"-header

De payload van het POST-verzoek bestaat uit รฉรฉn woord PING. De ping-to request header bevat de bestemming van de link en aanvullende informatie zoals user-agent is ook beschikbaar. Het is fascinerend dat de content-type is text/ping. ๐Ÿ™ˆ

Samenvattend, de ping attribuut biedt een lichtgewicht manier om โ€œlink click trackingโ€ te implementeren. Betekent dit dat u het vandaag nog kunt gebruiken?

De browserondersteuning van de ping attribuut

Wanneer je kijkt de browsercompatibiliteitstabel van het kenmerk op MDN, zie je dat browserondersteuning zo slecht niet is.

Compatibiliteitstabel voor het ping-kenmerk waaruit blijkt dat er geen ondersteuning is voor Firefox en Safari (Safari is onjuist)

Chromium-browsers (Chrome, Edge, enz.) ondersteunen dit. De ondersteuning van Firefox zit achter een browserfunctievlag (browser.send_pings) en Safariโ€ฆ Safari wordt ten onrechte bestempeld als niet ondersteunend.

Deze onjuiste informatie is waar het genoemde pull-verzoek waarbij de Safari-ondersteuningsinformatie wordt bijgewerkt komt in het spel. De tabel zal redelijk groen zijn bij de volgende release van de MDN-compatibiliteitsgegevens!

Waarom gebruikt niemand ping?

Ik ben een grote fan van native HTML-oplossingen. De vraag is waarom niemand het gebruikt ping attribuut (of kent u een site die dit gebruikt?)?

Ik kan hier alleen maar speculeren, maar een reden zou kunnen zijn dat gebruikersanalyses voornamelijk worden aangestuurd door externe providers zoals Google Analytics.

Om deze als webontwikkelaar te gebruiken, hoeft u alleen maar รฉรฉn script in uw site in te sluiten. JavaScript houdt al het gebruikersgedrag bij en er hoeft geen infrastructuur te worden opgezet. Het werkt gewoon.

Als u uw tracking baseert op de ping attribuut, dan moet u alle links op uw site aanpassen. Dit proces omvat meer onderhouds- en ontwikkelingswerk. Dat is een sterk argument tegen het gebruik van de ping attribuut.

Toch is het goed om te weten dat het bestaat. Als je gebruikt ping, ik zou graag meer willen weten over wat je ermee doet!

Bron: https://www.stefanjudis.com/today-i-learned/html-defines-a-ping-attribute-on-anchor-elements-links/

Tijdstempel:

Meer van CSS-trucs