首页与内页的任务分配,不是简单决定“谁先加载”,而是按用户到达路径分配性能预算:首页承担首屏快速可用与导航分发,内页承担内容完整呈现与深度阅读。若首页打开慢,用户可能直接离开;若内页打开慢,已进入的用户可能放弃阅读或转化。改进时应先判断瓶颈出现在哪类页面,再决定把优化资源投向首页还是内页。
已有页面或项目做性能改进时,最怕把“打开网页的速度慢”当成一个整体问题。可以用同一网络环境分别记录三类数据:首页首次打开耗时、从首页进入一个典型内页的耗时、内页返回首页或跳转下一个内页的耗时。若首页明显慢于内页,优先处理首页;若内页慢于首页,优先处理内页模板。
判断时还要区分“可能原因”和“已经定位的原因”。例如首页图片多、请求多,是可能原因;通过浏览器开发者工具看到某个图片资源阻塞渲染,才是已经定位的原因。不要因为首页慢就断言服务器差,也不要因为内页慢就认定内容太长。
首页通常承担品牌展示、导航分发和主要入口聚合。它的性能目标是首屏尽快可读、可点、可滚动。若首页把大量推荐内容、轮播图、第三方脚本都放在首屏之前,打开速度就容易变慢。
适用条件是首页作为流量入口且用户目标以“找入口”为主。判断结果是:首屏可交互时间下降,用户能更快进入目标内页。代价是首页下方内容可能稍晚出现,但不影响主要导航。
内页通常承担具体内容阅读、商品详情、文章浏览或表单提交。它的性能目标是正文尽快出现,次要模块不阻塞阅读。若内页把大量相关推荐、广告、评论、分享按钮都放在正文之前,读者会感到“打开网页的速度慢”。
可执行的检查项:在典型内页上,观察正文是否在首屏出现;若正文被大图、视频占位或第三方组件推到下方,就应调整加载顺序。把正文所需样式放在前面,把评论、推荐、分享等放到正文之后加载。
适用条件是内页以阅读或转化为目标。判断结果是:用户滚动到正文时不需要等待,正文区域先于次要模块可用。代价是部分互动模块出现稍晚,但通常不影响主要阅读任务。
更实际的做法是按用户路径分配优化任务。假设一个项目有首页、列表页、详情页三类页面,可以这样比较:
这里的“假设”只用于说明分配方法,不是真实项目数据。实际判断应使用自己页面的测量结果。若首页和内页都慢,先处理共同依赖,例如同一套全局脚本、同一台服务器响应、同一类大图;再处理各自特有的瓶颈。
可以按以下步骤执行:
判断结果的标准是:首页能更快进入内页,内页能更快读到正文。若只优化了总加载时间,但首屏仍被大图或脚本挡住,用户仍会觉得打开网页的速度慢。
下一步,选一个首页和一个内页,分别记录首屏可交互时间与正文出现时间,再决定把这一轮优化放在首页还是内页。