html嵌套过深会拖慢fcp,每多一层增加dom创建和样式计算开销,超6层需优化;script位置不当易致白屏,非必要逻辑加defer,交互逻辑慎用async,操作dom脚本应放底部;内联css/js超50行是性能隐患,html体超15kb需检查内联资源占比。

HTML嵌套过深会拖慢首次内容绘制(FCP)
浏览器解析HTML是自上而下流式进行的,每多一层嵌套,就多一次DOM节点创建和样式计算。实测中,<div>
<div><div><div><p>文本</p></div></div></div>这类结构在低端Android设备上会让FCP延迟300ms以上。
<ul>
<li>用<code>devtools → Elements → 右键节点 → “Show DOM properties”查节点深度,超过6层就要警惕
<section></section>、<article></article>、<nav></nav>替代<div>堆叠的,优先替换——语义标签本身不增加渲染开销
<li>特别注意<code><table>内嵌<code><div>再套<code><span></span>:表格单元格的样式计算成本高,嵌套后极易触发重排
script位置不当直接导致首屏白屏
<script></script>默认同步执行,放在或顶部时,浏览器必须暂停HTML解析、下载并执行完脚本,才能继续构建DOM树。这是白屏最常见原因。
如果你了解HTML,CSS和JavaScript,您已经拥有所需的工具开发Android应用程序。本动手本书展示了如何使用这些开源web标准设计和建造,可适应任何Android设备的应用程序 - 无需使用Java。您将学习如何创建一个在您选择的平台的Android友好的网络应用程序,然后转换与自由PhoneGap框架到一个原生的Android应用程序。了解为什么设备无关的移动应用是未来的潮流,并开始构建应用程序,提供更
- 非必要逻辑(如统计、第三方SDK)一律加
defer,确保按顺序执行且不阻塞解析 - 纯交互逻辑(如按钮点击绑定)可用
async,但注意它不保证执行顺序,且可能在document.body还没创建时就运行 - 真要操作DOM的脚本,放
底部——别信“DOMContentLoaded比load快”的模糊说法,晚100ms加载,首屏渲染就晚100ms
内联CSS/JS超50行就是性能隐患
服务器返回的HTML如果含大段<style></style>或<script></script>,不仅拉长TTFB,还会让解析器卡在文本扫描阶段,延迟DOM构建起点。
- 单个
<style></style>或<script></script>内联代码超50行,基本可判定为维护风险+性能隐患,应提取为独立文件 - 用
curl -I看响应头Content-Length,HTML体大于15KB时,重点检查内联资源占比 - 关键CSS可内联,但仅限首屏必需的那部分(通常
缺少resource hint会让关键资源加载滞后
浏览器默认只对HTML中直接出现的链接做预加载。字体、首屏图片、关键CSS这些依赖关系隐含的资源,不加提示就只能等HTML解析到对应标签才发起请求,白白浪费空闲带宽。
- 首屏必用的字体,加
<link rel="preload" href="https://www.php.cn/link/2d084a4acd512e6314d6e8ae111b8205" as="font" type="font/woff2" crossorigin> - 关键CSS文件(如
base.css)在里用<link rel="preload" as="style">,再用<link rel="stylesheet">正常引入 - 避免滥用
prefetch:它适合用户下一步大概率访问的资源(如搜索页后的结果页),不是首屏关键路径










