fetchpriority对脚本无效,仅适用于img和iframe(需非空src);降权脚本须用async/defer、避免preload、置于/body前或移出head。

fetchpriority 不能给脚本降权。
它对 <script> 标签完全无效 —— 无论设成 "high" 还是 "low",Chrome、Edge、Safari 都会忽略,Firefox 更是静默跳过。这不是兼容性问题,而是规范限定:该属性只在 <img> 和 <iframe>(且必须有非空 src)上被解析和响应。
想降低脚本的加载优先级,得用真正起作用的机制:
-
async或defer:让脚本不阻塞 HTML 解析,间接降低调度权重 - 不写
preload:避免提前抢占连接和带宽 - 把
<script>放在</body>前:晚于关键资源解析,自然延后发起请求 - 避免放在
<head>里同步加载:这是最常导致首屏卡顿的写法
fetchpriority="low" 加在 <script src="..."> 上,只会白写——Network 面板里 Priority 列不会变,浏览器也不报错,就当没看见。
立即学习“前端免费学习笔记(深入)”;
fetchpriority 不是通用降权开关,它是专为图片/iframe 设计的“让权提示”,仅在 Chromium 112+ 和 Safari 17.2+ 中对这两类标签生效。脚本的优先级调控,得靠 async、defer、preload 的组合,而不是硬套这个属性。
容易被忽略的一点:很多人以为加了 fetchpriority="low" 就能“压低脚本”,结果既没效果,还误以为自己做了优化。实际起效的永远是加载时机(async/defer)、预加载声明(preload 是否存在)、以及 DOM 插入位置——不是靠一个被忽略的 HTML 属性。



















