当前位置: 首页 > 知识库问答 >
问题:

前端 - 请问 Nuxt3 服务端首次渲染返回时间过长 这是为什么呢?

庄萧迟
2023-12-01

Nuxt3.6.1 首次服务端渲染返回页面内容这段TTFB时间很长是怎么回事呢?
首页接口基本上都使用了lazy 还是要4,5s左右
image.png

试着进行打包优化 gzip 压缩,替换比较大的依赖,只减少了FCP的时间
image.png
服务器返回构建的html模板应该是在FCP之前,性能测试这里也是提示服务器返回有4s左右的时间
image.png
目前知道接口少的页面会加载更快,但是前后端分离,服务端首次渲染这段获取数据的时间不知道如何查看,还不能确定都是接口慢的锅,或许是我这边useFetch那边没配置好。

琢磨几天了,希望大佬们帮忙看看,非常感谢。

共有1个答案

龚俭
2023-12-01

你好,我看到你在询问关于 Nuxt3 首次服务端渲染(SSR)时间过长的问题。这个问题可能由多个因素导致,我会尽量提供一些可能的原因和解决方案。

  1. 接口数据获取时间过长:从你的截图来看,页面在服务器返回构建的html模板之前,有一个4秒左右的延迟。这个时间可能是由于你的接口调用的数据获取时间过长导致的。在 SSR 过程中,需要等待所有接口调用完成才能开始渲染页面,因此如果接口数据获取时间过长,会导致 SSR 时间增加。你可以尝试优化你的数据获取逻辑,例如使用缓存、减少数据获取的次数等。
  2. 依赖包过大:你已经尝试过使用 gzip 压缩和替换比较大的依赖包来减少加载时间,但是这只是减少了 FCP(First Contentful Paint)的时间,而对服务器返回构建的html模板的时间没有影响。你可能需要进一步检查你的项目依赖,找出那些不必要的或者过大的依赖包,并尝试替换或者移除它们。
  3. 服务器性能问题:服务器性能问题也可能导致 SSR 时间过长。你可以尝试升级你的服务器硬件或者优化你的服务器配置来提高性能。
  4. useFetch 配置问题:你已经提到,或许是你的 useFetch 配置存在问题。你可以检查一下你的 useFetch 配置,确保它们是正确和高效的。例如,你可能需要设置超时时间、重试次数等参数来确保接口调用不会因为等待过长时间而阻塞 SSR。

以上是一些可能的原因和解决方案,希望能对你有所帮助。如果你能提供更多关于你的项目的信息,我可能能提供更具体的建议。

 类似资料:
  • Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。然而,也可以将同一个组件渲染为服务器端的 HTML 字符串,将它们直接发送到浏览器,最后将静态标记"混合"为客户端上完全交互的应用程序。 服务器渲染的 Vue.js 应用程序也可以被认为是"同构"或"通用",因为应用程序的大部分代码都可以在服务器和客户端上运行。

  • 服务端渲染一个很常见的场景是当用户(或搜索引擎爬虫)第一次请求页面时,用它来做初始渲染。当服务器接收到请求后,它把需要的组件渲染成 HTML 字符串,然后把它返回给客户端(这里统指浏览器)。之后,客户端会接手渲染控制权。 下面我们使用 React 来做示例,对于支持服务端渲染的其它 view 框架,做法也是类似的。 服务端使用 Redux 当在服务器使用 Redux 渲染时,一定要在响应中包含应用

  • 准备动作 1、安装nodejs与安装express 安装nodejs教程:http://www.cnblogs.com/pigtail/archive/2013/01/08/2850486.html 安装 express 教程:https://www.wenjiangs.com/doc/f5jxm7ii 2、安装node-jsx(使nodejs支持jsx语法) $ npm install node

  • 实验性 SSR 支持还处于试验阶段,你可能会遇到 bug 和不受支持的用例。请考虑你可能承担的风险。 注意 SSR 特别指支持在 Node.js 中运行相同应用程序的前端框架(例如 React、Preact、Vue 和 Svelte),将其预渲染成 HTML,最后在客户端进行脱水化处理。如果你正在寻找与传统服务器端框架的集成,请查看 后端集成指南。 下面的指南还假定你在选择的框架中有使用 SSR

  • 从 3.8.0 开始,san 的服务器端渲染由 san-ssr 实现。如果你在使用 3.8.0 之前的 san,请参考 服务器端渲染(3.8.0 之前)。 San 的服务端渲染支持是基于 组件反解 的: 服务端输出的 HTML 中带有对视图无影响,能帮助组件了解数据与视图结构的标记片段 浏览器端,组件初始化时从标记片段理解组件结构,在后续用户操作时组件能正确响应,发挥作用 提示:由于组件运行环境需

  • 本文向大家介绍预渲染和SSR(服务端渲染)有什么区别?相关面试题,主要包含被问及预渲染和SSR(服务端渲染)有什么区别?时的应答技巧和注意事项,需要的朋友参考一下 服务端渲染和预渲染的使用场景还是有较明显的区别的。预渲染的使用场景更多是我们所说的静态页面的形式。服务端渲染适用于大型的、页面数据处理较多且较为复杂的、与服务端有数据交互的功能型网站,一个明显的使用场景就是电商网站。