[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-nuxt-ssr-cache-strategy-zh-CN":3,"blog-adjacent-nuxt-ssr-cache-strategy-zh-CN":28,"blog-related-nuxt-ssr-cache-strategy-zh-CN":65},{"id":4,"slug":5,"title":6,"excerpt":7,"content":8,"cover":9,"tone":10,"author":11,"publishedAt":12,"updatedAt":12,"readingMinutes":13,"featured":14,"tags":15,"category":19,"seoSettings":27},34,"nuxt-ssr-cache-strategy","Nuxt SSR 的缓存与首屏速度","服务端渲染不等于快。首屏速度取决于数据请求的组织方式，而不是渲染模式本身。","\u003Cp>很多团队选择 SSR 是为了首屏速度和 SEO，上线后发现首屏依然要等一两秒。排查下来，问题通常不在渲染环节，而在数据请求串行、接口过慢或缓存缺失。\u003C\u002Fp>\n\u003Ch2>三个常见瓶颈\u003C\u002Fh2>\n\u003Cp>串行请求。页面依次等待分类、列表、推荐三组数据，总耗时等于三者之和。并行之后往往能省掉一半时间。\u003C\u002Fp>\n\u003Cp>缺少缓存。首页、列表页这类内容对所有人一致，完全可以在服务端缓存几十秒，瞬间降低接口压力。\u003C\u002Fp>\n\u003Cp>数据过度获取。列表页请求了详情字段，详情页又请求了列表数据，白白浪费带宽和查询时间。\u003C\u002Fp>\n\u003Ch2>我们的默认配置\u003C\u002Fh2>\n\u003Cp>内容类页面在服务端做短时缓存，后台更新后通过接口触发失效，避免用户看到过期内容。\u003C\u002Fp>\n\u003Cp>首屏关键请求放进 useAsyncData 并行执行，非关键模块延后到客户端加载。\u003C\u002Fp>\n\u003Cp>图片和字体统一走 CDN，避免抢占首屏带宽。\u003C\u002Fp>\n\u003Cp>SSR 只是把渲染搬到服务端，真正的速度来自少请求、并行请求和合理缓存。\u003C\u002Fp>","","blue","佳益方圆团队","2026-08-30T13:52:00+08:00",1,false,[16,17,18],"Nuxt","SSR","性能",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},0,"engineering","技术专栏","架构设计、性能优化、AI 集成与跨端方案等一线技术实践，由研发团队持续分享。","cpu","article",60,{},{"previous":29,"next":47},{"id":30,"slug":31,"title":32,"excerpt":33,"content":9,"cover":9,"tone":34,"author":11,"publishedAt":35,"updatedAt":35,"readingMinutes":13,"featured":14,"tags":36,"category":40},13,"cash-flow-before-margin","现金流比利润率更重要","利润率是账面数字，现金流决定公司能不能活到下一个项目回款。","teal","2026-09-01T12:39:00+08:00",[37,38,39],"创业","现金流","经营",{"id":41,"parentId":20,"slug":42,"name":43,"description":44,"icon":45,"cover":9,"tone":10,"kind":25,"sortOrder":46,"count":20},6,"founder-notes","创业手记","创始团队在经营、管理与产品上的思考，记录一家软件公司的成长过程。","pen-tool",10,{"id":48,"slug":49,"title":50,"excerpt":51,"content":9,"cover":9,"tone":52,"author":11,"publishedAt":53,"updatedAt":53,"readingMinutes":13,"featured":14,"tags":54,"category":58},54,"permissions-are-product-design","权限设计其实是产品设计","权限不是技术附录，它决定了组织里每个人能看到什么、能做什么。","slate","2026-08-28T13:52:00+08:00",[55,56,57],"权限","产品设计","组织",{"id":59,"parentId":20,"slug":60,"name":61,"description":62,"icon":63,"cover":9,"tone":10,"kind":25,"sortOrder":64,"count":20},2,"product-thinking","产品思维","需求分析、用户体验与产品设计方法论，以及从业务问题到产品方案的思考过程。","lightbulb",50,[66,78,89],{"id":67,"slug":68,"title":69,"excerpt":70,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":72,"updatedAt":72,"readingMinutes":13,"featured":14,"tags":73,"category":77},30,"integration-api-pitfalls","企业系统集成：接口对接最容易踩的五个坑","接口文档写得再全，真正对接时仍然会卡在字段约定、超时和重复推送这些细节上。","cyan","2026-10-17T09:00:00+08:00",[74,75,76],"系统集成","接口","工程实践",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"id":13,"slug":79,"title":80,"excerpt":81,"content":9,"cover":9,"tone":71,"author":11,"publishedAt":82,"updatedAt":83,"readingMinutes":59,"featured":84,"tags":85,"category":88},"why-enterprise-systems-age","为什么企业系统会在三年后开始“老化”","系统上线时功能齐全，三年后却处处别扭。问题往往不在代码，而在交付时被忽略的那些变化。","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",true,[86,87],"系统演进","架构设计",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"id":90,"slug":91,"title":92,"excerpt":93,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":94,"updatedAt":94,"readingMinutes":13,"featured":14,"tags":95,"category":99},31,"idempotent-design-basics","幂等设计：重复提交不只是用户手抖","网络重试、消息重投、用户连点，都会让同一个请求到达多次。幂等应该设计在接口里。","2026-10-05T10:13:00+08:00",[96,97,98],"接口设计","幂等","可靠性",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20}]