Priority Hints and Resource Hints
Priority Hints and Resource Hints
Advanced Resource Loading Control
class ResourceHintsManager {
middleware() {
return (req, res, next) => {
// Set Priority Hints header
res.setHeader('Priority-Hints', 'importance');
// Early Hints (103 status code)
if (req.path === '/' && res.writeEarlyHints) {
res.writeEarlyHints({
link: [
'</css/critical.css>; rel=preload; as=style',
'</js/main.js>; rel=preload; as=script',
'<https://fonts.googleapis.com>; rel=preconnect'
]
});
}
next();
};
}
// Generate resource hints based on page type
generateResourceHints(pageType) {
const hints = {
homepage: `
<link rel="preconnect" href="https://api.example.com">
<link rel="dns-prefetch" href="https://cdn.example.com">
<link rel="preload" href="/css/critical.css" as="style">
<link rel="preload" href="/fonts/main.woff2" as="font" crossorigin>
<link rel="modulepreload" href="/js/app.mjs">
`,
product: `
<link rel="preconnect" href="https://images.example.com">
<link rel="preload" href="/js/product-gallery.js" as="script">
<link rel="prefetch" href="/api/recommendations" as="fetch">
`
};
return hints[pageType] || '';
}
}