【问题标题】:Next js initial page loading time is too slow compared to subsequent page loadsNext js初始页面加载时间相比后续页面加载太慢了
【发布时间】:2021-06-30 13:03:55
【问题描述】:

我已经使用 nextjs 构建了一个App 并将其部署在服务器上,我观察到初始页面加载需要 4 秒才能加载,并且所有后续页面加载需要几毫秒来加载,如果 next 生成静态 html 页面并提供服务那为什么要花这么长时间,如果我错了,请纠正我,

network process screenshot

https://public-sapient.vercel.app/

【问题讨论】:

  • 可能是 AWS Lambda 冷启动和服务器端请求。
  • @MOin - 你找到加速 FCP 和 LCP 的方法了吗?

标签: reactjs next.js server-side-rendering


【解决方案1】:

更新:

您正在并行运行太多资产请求。我怀疑您的资产托管方正在限制您的请求,因为我们发现每个 X 请求都会出现一些放缓。

仅使用 IntersectionObserver 解决方案请求可见的资产。

======

网络成本实际上是一个站点需要完成的所有操作,它并不总是性能的最佳标志。

例如,假设我的总网络成本为 4 毫秒。尽管其中一个脚本需要很长时间才能完成(这会影响总网络时间),但我的 Web 核心生命体征很好,实际上我的 First Contentful Paint (FCP) 很短,因此用户可以快速查看工作站点。

Web Core Vitals 是更好的指标 https://web.dev/vitals/

在 Chrome 开发工具中运行了性能审核,但没有发现任何明显的问题。有一些大任务和大布局转变,但没有什么明显会导致延迟。

【讨论】:

  • 好的,但是有一些ssr网站(以[新闻网站]([prothomalo.com)为例,fcp速度非常快,有什么办法可以做到这一点
  • 哦,是的,100% 可以实现。网络成本主要和数据有关,缩小一切的大小,使用CDN+缓存,看看用NextJS进行代码分割。看起来您从 api 获得启动 - 可能构建一个代理 api 来获取它们并将它们放入缓存中,因此当您请求它们时,它是一个更快的操作。这更像是一个网络架构问题。
  • 啊,谢谢,我会研究上面提到的方法,我想了解更多关于 web 架构的知识,你能推荐任何好的课程或在线资料来深入学习 web 架构
  • 4.68 秒的初始文档请求加载时间非常慢。黄金标准被认为是
  • 你们在使用'next/image'组件吗?如果是,请检查删除它时加载时间是否会变好。如果是这样,则可能存在缓存问题(即 max-age 标头值太低),并且每次用户访问您的页面时,下一个服务器都必须执行所有神奇的魔法来压缩图像并将它们转换为未来的 Web 格式像webp。见github.com/vercel/next.js/discussions/18481
猜你喜欢
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-30
  • 1970-01-01
  • 2016-01-26
  • 1970-01-01
相关资源
最近更新 更多