HTTP2 server push
Push static assets to a client's browser without waiting for HTML to render.
const CSS = `body { color: red; }`;
const HTML = `<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>Server push test</title> <link rel="stylesheet" href="http2_push/h2p/test.css"></head><body> <h1>Server push test page</h1></body></html>`;
async function handleRequest(request) { // If request is for test.css, serve the raw CSS if (/test\.css$/.test(request.url)) { return new Response(CSS, { headers: { 'content-type': 'text/css', }, }); } else { // Serve raw HTML using HTTP/2 for the CSS file return new Response(HTML, { headers: { 'content-type': 'text/html', 'Link': '</http2_push/h2p/test.css> rel=preload; as=style', }, }); }
}
addEventListener('fetch', event => { event.respondWith(handleRequest(event.request));
});