为什么用了后页面加载反而变慢了?
我在单页应用里给下一个路由的CSS文件加了<link rel='prefetch'>,但实际测试发现首屏渲染反而比之前慢了0.5秒,这是为什么呢?
我尝试在路由切换时动态插入预加载标签:
const nextCss = document.createElement('link');
nextCss.rel = 'prefetch';
nextCss.href = '/next-page.css';
document.head.appendChild(nextCss);
但监控显示预加载的CSS文件竟然在首屏渲染阶段就被下载了,导致主线程阻塞。明明prefetch应该是低优先级请求啊?而且这个CSS文件有200KB,会不会太大了?
其他尝试都失败了:
1. 换成preload后性能反而好了
2. 把文件拆分到50KB还是有延迟
3. 检查网络面板发现prefetch优先级比静态资源高
link/rel=modulepreload或者干脆把CSS内嵌到JS里打包。如果非要prefetch,试试加个as=style属性:不过你这情况,换成