<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Beacon API Learning</title>
    <link>https://foxipa.com/en/web-apis/learn/beacon/</link>
    <description>A 17-part Beacon API learning path — from fire-and-forget fundamentals and the queueing boolean through the 64 KiB quota, page-lifecycle delivery, CORS, service workers, and fetchLater() — with runnable, spec-verified examples on every page.</description>
    <generator>Hugo</generator>
    <language>en-US</language>
    <atom:link href="https://foxipa.com/en/web-apis/learn/beacon/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>1.1 The fire-and-forget problem, and the API that solves it</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/fire-and-forget/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/fire-and-forget/</guid>
      <description>Why teardown-time telemetry is hard, what navigator.sendBeacon() promises (queueing, not delivery), and the fixed fetch recipe every beacon request carries.</description>
    </item>
    <item>
      <title>1.2 Where sendBeacon lives: Window only</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/where-it-runs/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/where-it-runs/</guid>
      <description>Navigator versus WorkerNavigator, the two-step feature detection that covers every runtime, and an honest separation of spec maturity from shipping folklore.</description>
    </item>
    <item>
      <title>2.1 The signature: two arguments, two TypeErrors, one boolean</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/signature-and-boolean/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/signature-and-boolean/</guid>
      <description>The real sendBeacon IDL with no third parameter, the only two conditions that throw, and what false actually means — demonstrated live.</description>
    </item>
    <item>
      <title>3.1 Payloads: the BodyInit union and the Content-Type map</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/payloads-and-content-type/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/payloads-and-content-type/</guid>
      <description>Every type sendBeacon&#39;s data parameter accepts, the Web IDL stringify truth for odd values, and the fixed Content-Type mapping observed live through Request.</description>
    </item>
    <item>
      <title>3.2 The CORS trap: no-cors by default, silent drops always</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/the-cors-trap/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/the-cors-trap/</guid>
      <description>The safelist rule that decides a beacon&#39;s CORS mode, what opaque responses cost, why refused preflights are invisible, and the JSON-Blob story sorted from folklore.</description>
    </item>
    <item>
      <title>3.3 CORS-safe payloads: recipes that need no server setup</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/cors-safe-payloads/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/cors-safe-payloads/</guid>
      <description>The JSON-as-text/plain envelope, form encoding for flat events, and a unified payload builder that measures what it sends in real bytes.</description>
    </item>
    <item>
      <title>4.1 The 64 KiB quota: one shared pool, body bytes only</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/the-64kib-quota/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/the-64kib-quota/</guid>
      <description>The Fetch §4.6 algorithm verbatim, what it counts (bodies only), when slots release, and the myths — simulated live at the byte level.</description>
    </item>
    <item>
      <title>4.2 Streams, queues, and the quota-aware sender</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/quota-aware-queue/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/quota-aware-queue/</guid>
      <description>Why ReadableStream bodies always throw under keepalive, and the batching queue recipe that moves many events through one pool slot.</description>
    </item>
    <item>
      <title>5.1 Page lifecycle: the hidden transition is the contract</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/page-lifecycle/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/page-lifecycle/</guid>
      <description>The spec&#39;s MUST-flush-on-hidden guarantee parsed clause by clause, state-versus-event reasoning, ordering, and mobile reality.</description>
    </item>
    <item>
      <title>5.2 The lifecycle flusher: recipe, bfcache, and why unload is out</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/lifecycle-flusher/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/lifecycle-flusher/</guid>
      <description>One flush per hidden transition, bfcache restores identified precisely via persisted pageshow, and the layered case against unload.</description>
    </item>
    <item>
      <title>6.1 The server side: a collector endpoint for credentialed beacons</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/server-side-cors/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/server-side-cors/</guid>
      <description>What forced credentials:include demands from the server, the preflight trio, the 204 habit, and a framework-free Node collector.</description>
    </item>
    <item>
      <title>7.1 Service workers and beacons: detection and safe forwarding</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/service-worker-interception/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/service-worker-interception/</guid>
      <description>The keepalive-POST-empty-destination detection triple with its honest false positives, and the buffer-then-re-issue patterns that never lose data.</description>
    </item>
    <item>
      <title>8.1 Workers and fetch(keepalive): the superset transport</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/workers-and-keepalive/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/workers-and-keepalive/</guid>
      <description>The keepalive flag&#39;s specification, the fetch-groups exemption that lets requests outlive their context, and the exact capability trade against sendBeacon.</description>
    </item>
    <item>
      <title>9.1 sendBeacon versus fetch(keepalive): the decision and the hybrid layer</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/sendbeacon-vs-fetch-keepalive/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/sendbeacon-vs-fetch-keepalive/</guid>
      <description>One decision function from runtime and capability, the hybrid sender with its discriminated return, and the famous one-line fallback — with the shared-pool trap that makes it a capability answer only.</description>
    </item>
    <item>
      <title>10.1 Real-world patterns: the analytics SDK</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/real-world-patterns/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/real-world-patterns/</guid>
      <description>Batching, lifecycle flushes, bfcache-tagged restores, stable A/B assignment, and IndexedDB persistence with save-before-clear ordering — one vanilla SDK.</description>
    </item>
    <item>
      <title>11.1 fetchLater(): deferred fetching, from the specification</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/fetchlater/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/fetchlater/</guid>
      <description>The real FetchLaterResult IDL, the five throwing gates, whole-request quota accounting against the per-origin cap, and when deferred beats immediate.</description>
    </item>
    <item>
      <title>12.1 Testing beacons, and the complete reference</title>
      <link>https://foxipa.com/en/web-apis/learn/beacon/testing-and-reference/</link>
      <pubDate>Sun, 27 Sep 2026 00:00:00 &#43;0000</pubDate>
      <guid>https://foxipa.com/en/web-apis/learn/beacon/testing-and-reference/</guid>
      <description>The Playwright interception fixture the series was validated with, what DevTools can show, and every load-bearing fact on one card with its spec anchor.</description>
    </item>
  </channel>
</rss>
