优先保证关键渲染路径资源:将首屏相关的CSS、关键图片和必要的JS控制在最小范围内,建议将首包控制在20m配额的30%以内。非关键资源延后加载或放到次要域名/异步加载。
把资源分为:关键资源、延迟资源、第三方资源。关键资源放置在本地或近端CDN,延迟资源走异步或动态加载,第三方资源做异步替换或本地缓存。
示例分配:首屏CSS+关键字体40%,首屏图片30%,首屏JS20%,预留10%用于缓存策略与热更新。
采用浏览器缓存、CDN边缘缓存、反向代理(如Varnish/Nginx)和应用端缓存四层组合。通过不同TTL设置实现稳定命中率,静态资源长TTL(如30天),HTML短TTL或使用stale-while-revalidate策略。
针对静态资源使用Cache-Control: public, max-age;HTML使用Cache-Control: no-cache配合ETag或Last-Modified,保证变更可控同时不影响缓存命中率。
采用版本化文件名(hash)避免强制清除全站缓存,配合CDN API实现按需清理,减少回源压力。
优先选择在台北/高雄有PoP的CDN供应商,确保最短网络跳数和最低延迟。若使用海外节点,需验证跨海延迟并考虑多线路BGP调度。
启用边缘压缩(Brotli/Gzip)、图片格式转换(WebP/AVIF)、边缘缓存与边缘逻辑(edge workers)可减少回源与延迟。
使用Anycast DNS与智能解析策略,确保台湾用户解析到最近的边缘节点,减少DNS解析时延。
对CSS/JS启用压缩与Tree Shaking,图片用响应式和现代格式(WebP/AVIF),字体使用子集并延迟加载非关键字体,所有静态资源启用Brotli或Gzip。
把关键CSS内联到HTML头部,JS使用defer/async并将非必要脚本放到底部或加载时机策略化,利用preload、prefetch和preconnect提升关键资源加载优先度。
在保证缓存效率的前提下,合理拆分bundle:首屏一个小bundle,其它功能按需加载,避免大文件阻塞渲染。
使用Lighthouse、WebPageTest和GTmetrix做合规性测试,关注首字节时间(TTFB)、首屏时间(First Contentful Paint)、交互时间(Time to Interactive)和缓存命中率。
部署RUM收集台湾真实网络环境下的加载数据,按地域、运营商和设备分类分析性能瓶颈并与测试结果对比。
建立自动化测试与告警:当缓存命中率下降或首屏时间超阈值时触发告警,并结合版本回滚与CDN策略快速响应。