AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / coding / 问题 / 79412552
Accepted
Will Calderwood
Will Calderwood
Asked: 2025-02-05 01:35:56 +0800 CST2025-02-05 01:35:56 +0800 CST 2025-02-05 01:35:56 +0800 CST

使用 Next.js 在移动设备上的最大内容绘制非常慢

  • 772

我正在开发一个网站https://www.paveinsight.com。该网站使用 Next.js 编写并托管在 Vercel 上,主页生成为静态页面。

运行 PageSpeed Insights 时,我的 LCP 很慢,在移动设备上尤其慢,我不知道原因。图片经过优化,根据屏幕调整大小并托管在 Amazon CloudFront 上。在我的实际设备上测试,页面加载速度很快,而且很流畅。在我的 Pixel 7 上加载的 webp 图片为 81KB,但 PageSpeed Insights 表示 LCP 在移动设备上为 9.4 秒。

模拟的 4G 连接速度为 1,638 kb/s,因此我预计下载时间将远少于 1 秒。下面是所用时间的明细。什么可能导致 TTFB 过高,或极端的加载延迟和渲染延迟?

TTFB 6% 600ms
Load delay 53% 4,920ms
Load time 1% 80ms
Render delay 40% 3,750ms

在此处输入图片描述

performance
  • 1 1 个回答
  • 27 Views

1 个回答

  • Voted
  1. Best Answer
    Barry Pollard
    2025-02-05T02:24:09+08:002025-02-05T02:24:09+08:00

    查看 LCP 加载的更好方法是使用 WebPageTest 之类的工具,它将显示完整的瀑布图:

    网站加载瀑布图

    它的 LCP 约为 6.5 秒,比 Lighthouse 短一点,但 Lighthouse 确实在相当低规格的机器上进行了估计节流,这两者都可能导致差异。

    这表明 LCP 图像(第 55 行以绿色突出显示)直到所有 JavaScript 都已下载并执行完 JavaScript(尤其是第 12 行和第 14 行上的包)后才会被提取。这在这台低配置的机器上需要花费很多秒的时间。

    您应该查看服务器端渲染,以便图像资源在初始 HTML 中交付,并且不依赖于首先运行的所有客户端 JavaScript。

    理想情况下,减少 JavaScript 使得它在低端机器上运行不需要花费几秒钟的时间!

    • 1

相关问题

  • 提高斯特林数计算效率

  • Haskell 速度问题,执行程序的两个部分比单独执行任一部分花费的时间要长得多

  • 为什么优化后的 g 脚本代码比“低效”的代码慢?

  • 如何让JMeter用户不等待响应

  • 如何解释两个处理器之间巨大的执行速度差异?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve