fetch podporuje možnost keepAlive, aby přežilo navigaci po stránkách

Tato stránka používá Umami jako samostatně hostovaný analytický nástroj zaměřený na ochranu soukromí. Zaujala mě položka v Umamiho changelogu – „Update tracker/index.js:SendBeacon() to Fetch API“.

sendBeacon je metoda JavaScriptu pro odesílání požadavků na analytický server. Tyto požadavky by měly být asynchronní, neměly by být zrušeny a měly by přežít aktuální navigaci. Ale zřejmě sendBeacon je někdy blokován blokátory reklam.

To však není velký problém, protože dnes jsem se dozvěděl, že umím vypustit sendBeacon z mé paměti a použít fetch metoda s keepalive volba. 👇

fetch(`${root}/api/collect`, {
  method: 'POST',
  body: data,
  // note the `keepalive` option
  keepalive: true,
});

fetch s keepalive volba má stejné vlastnosti jako sendBeacon a funguje jako jeho náhrada. To je dobré vědět!

Nezaměňujte keepalive načíst atribut s Keep-Alive HTTP hlavička.