【问题标题】:too much loading time in nextjsnextjs 加载时间过长
【发布时间】:2021-09-01 08:20:39
【问题描述】:

我是 Nextjs 的新手。我已经实现了一个页面。使用 SSR。但正如您在图片中看到的,有很多工作箱在运行,每个工作箱持续 100 到 300 毫秒,这增加了加载时间。

【问题讨论】:

  • 检查您的图像大小,也许?
  • @RyanLe 如果作者使用的是next的图片组件,那么它已经在使用最小尺寸了
  • 我明白了,图像显示所有请求在“仅”300 毫秒内并行。我想这是完全可以接受的
  • 都是js。有了这么长的加载时间,虽然它们都是并行加载的,但您不必担心。您在视觉上看到它很慢吗?
  • 也许使用灯塔工具来检查问题所在

标签: reactjs next.js frontend


【解决方案1】:

我看到了你的问题。您一次加载所有图像和产品组件,因此整个网站都滞后。您必须拆分搜索,每个视口可能有 10 到 15 个产品,当用户滚动到最后时,加载接下来的 10 到 15 个产品等等。

您可以将 useEffect 与 useState 一起使用。

另外,调整 API 以有时获取有限的数据,

即:

https://api.com/getproducts?quantity=10

【讨论】:

  • 我做了你说的一切,只有一个问题,那就是对于每张包含图片和文本的卡片,我都有一个名为 ProductCard 的组件。页面上映射了 12 个 ProductCard,我不知道如何在视图中使用它们以避免生成不在视图中的卡片。更准确地说: {productList?.map((item) => ( ))}
  • 你可以使用无限滚动组件进行反应
  • 另外需要注意的是,您使用的是 SSR,因此页面首先在服务器中转换为纯 HTML,然后提供,这意味着 HTML 很大,这就是它速度较慢的原因。不使用Server Side Fetching,直接在组件中使用useEffec(),在客户端获取数据
猜你喜欢
  • 1970-01-01
  • 2012-08-23
  • 2016-06-20
  • 2016-02-17
  • 1970-01-01
  • 1970-01-01
  • 2011-08-17
  • 2016-03-01
  • 2019-12-24
相关资源
最近更新 更多