@
mailworks 使用 ISR ,SEO 不是最主要的,既然用了 nextjs ,也不会作为纯 SPA/离线包来使用,因为离线包无法在小程序内使用,同时也会增大 APP 的更新复杂度。
传统 SPA 使用离线包主要是因为首屏白屏的问题,ISR 后首屏呈现基本不依赖 JS 资源文件下载和接口交互,纯 CDN 加载静态 HTML ,这个速度非常快,加载完毕后才开始水合,大幅降低了白屏的时间。
首屏加载后,用户在界面操作过程中,所有跳转都会提前预取,所以真正点击菜单/链接都会 0 秒延迟跳转,包括目标页面的大部分接口数据也会提前准备好,这里的交互比原生更快,毕竟原生接口请求还是会 loading 转圈。
从技术层面出发,这些特性不需要写多余的代码,因为 nextjs 框架已经帮忙做了,按着它规范去写就能实现,所以带来的额外工作量不大。
对于研发效率,基本就是编码一次,发布一次,全平台自动就更新了,省去了之前多端各开发各的,沟通/管理/招聘/开发/维护成本巨大,各端 BUG 还各不相同,APP/小程序发布还有审核,还要兼容历史版本/接口等问题。