[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-post-nuxt-ssr-cache-strategy-zh-CN":3,"blog-related-nuxt-ssr-cache-strategy-zh-CN":28,"blog-adjacent-nuxt-ssr-cache-strategy-zh-CN":64},{"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,{},[29,41,53],{"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},30,"integration-api-pitfalls","企业系统集成：接口对接最容易踩的五个坑","接口文档写得再全，真正对接时仍然会卡在字段约定、超时和重复推送这些细节上。","cyan","2026-10-17T09:00:00+08:00",[37,38,39],"系统集成","接口","工程实践",{"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":42,"title":43,"excerpt":44,"content":9,"cover":9,"tone":34,"author":11,"publishedAt":45,"updatedAt":46,"readingMinutes":47,"featured":48,"tags":49,"category":52},"why-enterprise-systems-age","为什么企业系统会在三年后开始“老化”","系统上线时功能齐全，三年后却处处别扭。问题往往不在代码，而在交付时被忽略的那些变化。","2026-10-16T09:30:00+08:00","2026-10-18T15:58:14.648+08:00",2,true,[50,51],"系统演进","架构设计",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"id":54,"slug":55,"title":56,"excerpt":57,"content":9,"cover":9,"tone":10,"author":11,"publishedAt":58,"updatedAt":58,"readingMinutes":13,"featured":14,"tags":59,"category":63},31,"idempotent-design-basics","幂等设计：重复提交不只是用户手抖","网络重试、消息重投、用户连点，都会让同一个请求到达多次。幂等应该设计在接口里。","2026-10-05T10:13:00+08:00",[60,61,62],"接口设计","幂等","可靠性",{"id":13,"parentId":20,"slug":21,"name":22,"description":23,"icon":24,"cover":9,"tone":10,"kind":25,"sortOrder":26,"count":20},{"previous":65,"next":83},{"id":66,"slug":67,"title":68,"excerpt":69,"content":9,"cover":9,"tone":70,"author":11,"publishedAt":71,"updatedAt":71,"readingMinutes":13,"featured":14,"tags":72,"category":76},13,"cash-flow-before-margin","现金流比利润率更重要","利润率是账面数字，现金流决定公司能不能活到下一个项目回款。","teal","2026-09-01T12:39:00+08:00",[73,74,75],"创业","现金流","经营",{"id":77,"parentId":20,"slug":78,"name":79,"description":80,"icon":81,"cover":9,"tone":10,"kind":25,"sortOrder":82,"count":20},6,"founder-notes","创业手记","创始团队在经营、管理与产品上的思考，记录一家软件公司的成长过程。","pen-tool",10,{"id":84,"slug":85,"title":86,"excerpt":87,"content":9,"cover":9,"tone":88,"author":11,"publishedAt":89,"updatedAt":89,"readingMinutes":13,"featured":14,"tags":90,"category":94},54,"permissions-are-product-design","权限设计其实是产品设计","权限不是技术附录，它决定了组织里每个人能看到什么、能做什么。","slate","2026-08-28T13:52:00+08:00",[91,92,93],"权限","产品设计","组织",{"id":47,"parentId":20,"slug":95,"name":96,"description":97,"icon":98,"cover":9,"tone":10,"kind":25,"sortOrder":99,"count":20},"product-thinking","产品思维","需求分析、用户体验与产品设计方法论，以及从业务问题到产品方案的思考过程。","lightbulb",50]