chromium/chrome/test/data/fetch-keepalive.html

<!doctype html>
<!--
  This page loads the given number of fetch keepalive requests, and then waits for their responses.
-->
<title>Fetching</title>
<script>
const PARAMS = new URL(location.href).searchParams;
const NUM_REQUESTS= PARAMS.has('requests') ? Number(PARAMS.get('requests')) : 1;
const METHOD = PARAMS.get('method') || 'GET';
const MODE = PARAMS.get('mode') || 'no-cors';

const promises = [];
for (let i = 0; i < NUM_REQUESTS; i += 1) {
  promises.push(fetch('/beacon', {
    keepalive: true,
    cache: 'no-store',
    method: METHOD,
    mode: MODE
  }));
}
document.title = 'Waiting';
Promise.all(promises).then(() => {
  document.title = 'Resolved';
}, () => {
  document.title = 'Rejected';
});
</script>