结论先行:如果短期活动页和长期知识页共用同一套模板、同一批资源加载策略和同一个发布流程,速度优化往往会被活动需求拖偏。更稳妥的做法是按“生命周期”拆成两条承载路径——活动页走可牺牲部分缓存与稳定性的快车道,知识页走以稳定为核心的慢车道。但这条结论有一个反例:当活动页本身承担长期入口价值(例如成为某个主题的常青落地页)时,分开承载反而会造成重复内容和权重分散,此时应合并而非拆分。
短期活动的速度压力通常集中在峰值时段:同一时间大量用户涌入,页面需要快速首屏、可接受的动态接口响应。长期知识内容的压力则均匀分布在整段时间里,更怕的是首屏之外的累积体验,比如图片越堆越多、第三方脚本逐年叠加。
冲突点主要有三个。第一是缓存策略:活动页需要短缓存甚至不缓存以保证价格和库存准确,知识页适合长缓存。第二是资源预算:活动页可以临时放宽脚本和图片体积,知识页一旦放宽就很难收回。第三是发布节奏:活动页要求随时上线,知识页要求改动前评估对历史页面的影响。
把这三项混在一起,最常见的后果是知识页被活动页的“临时方案”污染,几个月后没人记得哪些脚本是为哪次活动加的。
分开承载不等于建两套系统,而是在同一站点内划出可区分的边界。
一个可核对的证据是:把活动页专用脚本从知识页模板中移除后,观察知识页的首屏渲染是否变快。如果变化明显,说明之前存在资源污染;如果几乎无变化,说明瓶颈在别处,不要急着继续删脚本。
假设某站点在促销期间为所有页面加了一个倒计时组件,活动结束后组件被保留。三个月后,知识页的首屏时间上升。此时有两种解释:一是倒计时组件本身拖慢了渲染;二是这段时间知识页新增了大量图片和嵌入内容。
区分方法是分别测量:先在一组未新增内容的旧知识页上移除倒计时组件,看首屏是否恢复;再在一组新增内容较多的页面上移除同一组件,看恢复幅度是否一致。如果只有旧页面恢复明显,说明组件是主因;如果两类页面恢复幅度接近且都不大,说明新增内容才是主因。这个对比只用于说明区分方法,不代表任何真实站点的数据。
反例出现在活动页具有长期价值时。比如一次主题活动页在结束后仍有持续的自然访问,内容也逐步补充为完整的知识说明。如果继续把它当作短期页处理——短缓存、临时模板、活动结束即归档——就会损失它在长期内容体系中的位置。
判断标准不是页面最初为什么创建,而是它现在是否仍在回答一个长期存在的问题。如果是,应把它迁入知识页路径,统一模板和缓存策略,并检查是否与已有知识页重复。此时“分开”让位于“合并”,否则两条路径会互相竞争同一批查询。
不要先改代码。先给现有页面打上两类标记:一类是生命周期短于一个季度、依赖实时数据的页面;另一类是持续更新、以阅读为主的知识页。标记完成后,统计两类页面共用了哪些模板和脚本。
然后只做一件事:把共用脚本中仅服务于短期页面的部分,从知识页模板中移除,并记录移除后知识页的首屏变化。这个动作的结果会直接决定下一步——如果变化明显,继续按资源线分离;如果变化不明显,说明当前瓶颈不在资源混用,应转向检查知识页自身的内容体积和加载顺序,而不是继续拆分路径。