Nextjs 空闲时间

Nextjs Idle time

我有一个 Next.js 平台。刷新时,加载页面大约需要 6 秒。所以我在调试以找出延迟的位置,以了解我可以做些什么来改进它并发现大约有 5 秒的空闲时间。

基本上,根据 Chrome 和 Firefox 的性能调试工具,在加载所有内容和开始呈现第一页之间有 5 秒的空闲时间。

我正在遵循所有最佳实践来加速平台,例如记忆组件、动态加载在用户与它们交互之前不需要呈现的组件,...

这是 chrome 性能工具中显示空闲时间的饼图:

我想找出发生这种情况的位置,所以我在每个步骤(_app.js、index.js、...)添加了一些时间戳日志,并发现在第一次调用之间_app.js 和 index.js 的第一次调用,等待 5 秒。

所以我开始一个一个地删除组件(包装器,如提供程序,......)以查明是否是其中一个原因,但 none 其中 none 影响了空闲时间超过 2 毫秒,而有大约 5000 毫秒去某个地方。

我的问题是,有没有办法找出空闲时间是多少,或者为什么应用程序等待这么长时间才开始渲染,或者有人知道我可以尝试加快速度吗?

编辑:

下面是显示空闲时间的瀑布截图: 中间没有请求,也没有其他请求在等待结果。一结束,5秒什么都没有,然后开始渲染。

终于找到原因了。我正在使用 redux-persist 的 PersistGate,显然默认超时是 5 秒。将其降低到 2 秒实际上将空闲时间更改为 2 秒而不是 5 秒。

这不是最佳解决方案,因为存在 2 秒后状态未就绪的风险,因此我目前正在研究不同的库,但至少我知道空闲时间从何而来。

以防其他人遇到此问题并且原因是 PersistGate 这对我有用:

const config = {
 key: "root",
 storage: localForage,
 timeout: 2000,
};

我在研究过程中发现的其他事情:

  • 您的浏览器可能无法加载请求(例如 CSS 文件)
  • 您可能有一个巨大的包,而您的浏览器正在尝试加载所有内容