网站加载 Waiting (TTFB) 时间过长的原因和解决办法

网站加载 Waiting (TTFB) 时间过长的原因和解决办法

大家好,又见面了,我是全栈君。

点击上方“ 码农编程进阶笔记 ”,选择“置顶或者星标

文末有干货,每天定时与您相约!

关注网页前端性能的朋友,在优化网页性能的时候都会遇到网站加载 Waiting(TTFB)时间过长的问题。对于没有优化过的 WordPress 站点,TTFB 时间经常超过了页面内容的下载时间,为用户带来不必要的等待时间。这个问题的主要原因是在服务器端,不熟悉服务器运维的朋友优化起来可能会不知道从哪里下手,今天我们就从各方面分析一下网站加载 Waiting (TTFB) 时间过长的原因和解决办法。

什么是 Waiting (TTFB) 时间

TTFB 是 Time to First Byte 的缩写,指的是浏览器开始收到服务器响应数据的时间(后台处理时间+重定向时间),是反映服务端响应速度的重要指标。就像你问朋友了一个问题,你的朋友思考了一会儿才给你答案,你朋友思考的时间就相当于 TTFB。你朋友思考的时间越短,就说明你朋友越聪明或者对你的问题越熟悉。对服务器来说,TTFB 时间越短,就说明服务器响应越快。

TTFB 时间多长算长?

因为每个服务器的硬件和网络环境都不尽相同,每个服务器的 TTFB 时间也不相同。如果想知道你的服务器优化可以到什么程度,大家可以上传一些静态的 HTML 页面到服务器,然后打开这些静态页面,看一些这些页面的 TTFB 时间,大多数服务器的 TTFB 时间都在 50 ms 以下,这个时间就是我们优化时候可以追求的时间。下面两个图中的 TTFB 时间分别是本站所在服务器的静态和动态网页 TTFB 等待时间。

网站加载 Waiting (TTFB) 时间过长的原因和解决办法

静态网页 Waiting (TTFB)时间
网站加载 Waiting (TTFB) 时间过长的原因和解决办法
动态网页 Waiting (TTFB)时间

根据我们的测试,TTFB 时间如果超过了 500 ms,用户在打开网页的时候就会感觉到明显的等待。我么可以把 500 ms 以上认为是 TTFB 时间过长。可见,WordPress 智库的服务器还不算差。

TTFB 过长的原因

我们知道,对于动态网页来说,服务器收到用户打开一个页面的请求时,首先要从数据库中读取该页面需要的数据,然后把这些数据传入到模版中,模版渲染后,再返回给用户。由于查询数据和渲染模版需要需要一定的时间,在这个过程没有完成之前,浏览器就一致处于等待接收服务器响应的状态。有些服务的性能比较低,或者优化没做好,这个时间就会比较长。

当然,如果服务器到用户之间的网络不好,(比如,服务器在欧洲,用户在中国,用户打开网页的时候,请求需要跨越千山万水才能达到服务器),服务器接收到用户请求的时间过长,也是导致 TTFB 时间过长的原因。

有时候,页面在用户的浏览器中保存了过多的 Cookie,每次请求,这些 Cookie 都要发送到服务器,服务器都要处理这些 Cookie,这也是导致 TTFB 时间过长的原因之一。

Waiting (TTFB) 时间过长的解决办法

知道了原因,解决办法就显而易见了,那就是缩短服务器响应时间,最简单直接并且有效的办法就是使用缓存,把 PHP 和 MySQL 的执行时间最小化,一些缓存插件可以把 SQL 查询结果缓存起来,把几十次查询结果转换为几次;一些缓存插件可以直接把用户所请求的页面静态化,用户打开网页时,相当于直接从服务器上下载了静态页面。

如果是网络原因,换一个服务器是比较直接的解决办法。如果因为一些原因不能换服务器,可以使用一个 CDN,把页面同步到离用户比较近的 CDN 节点上,也是一个不错的解决办法。

如果是 Cookie 的原因,可以通过修改应用程序,删除一些不必要的 Cookie,或者精简 Cookie 内容,缩短 Cookie 的有效期等,都是解决办法。

来源:https://www.wpzhiku.com/wating-ttfb-too-long/

网站加载 Waiting (TTFB) 时间过长的原因和解决办法

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/111836.html原文链接:https://javaforall.net

(0)
上一篇 2022年2月14日 上午9:00
下一篇 2022年2月14日 上午10:00


相关推荐

  • HD地址批量生成 java

    HD地址批量生成 java前言:HD钱包全称为是分层确定性(HierarchicalDeterministic)钱包的缩写HDWallets。首次创建HD钱包或者备份钱包时,会产生一个助记词,助记词是一连串的英⽂单词,这一串单词序列就可以创建种子,种子又可以创建所有的私钥。单词顺序也是钱包的备份,可以恢复钱包。而种⼦对应的就是所确定性钱包的随机数。HD钱包的优点在于只需要主公钥,…

    2022年7月8日
    44
  • @Modifying注解误用错误

    @Modifying注解误用错误在数据访问层中写了一个查询语句 发现调用的时候报错 原代码如下 检查用户 ID 是否存在 paramuserId return Modifying Query value selectaccoun userWHEREuse id 1ANDdel flag

    2026年3月19日
    2
  • Ant安装配置

    Ant安装配置先在http://ant.apache.org/下载Ant,例如我下载的是最新版的apache-ant-1.7.1-bin.zip文件,然后解压缩至E:/apache-ant-1.7.1,添加环境变量ANT_HOME=E:/apache-ant-1.7.1,在PATH变量中添加%ANT_HOME%/bin;,Ant就算是配置好了。环境:WindowsXP

    2022年7月18日
    18
  • string转为long类型(long类型的取值范围)

    StringuserSexs=request.getParameter(“userSex”); LonguserSex=Long.parseLong(userSexs);

    2022年4月12日
    57
  • 叙事传输的说服机制_简述传输层实现可靠传输措施

    叙事传输的说服机制_简述传输层实现可靠传输措施博文《PUSCH上行跳频(1)-Type1频率跳频》里提到了为什么要使用PUSCH跳频,以及详细介绍了Type1方式的跳频,本文继续这个话题,介绍Type2方式的跳频。1.采用PUSCH跳频时需要注意的问题在上行子帧中,PUCCH信道处于带宽的高低两侧,或者说位于频带的边缘,PUSCH信道则位于带宽的中间。PUCCH信道也以RB对为基本单位,每个RB在频域上是12个子载波,时域上是1个时隙。需要注意PUCCH信道每个RB对的两个RB位置:第一个时隙的PUCCH信道位于带宽的低频位置,第二个时隙的

    2025年6月11日
    22
  • 【AI】教你如何为 OpenClaw 安装 Skills

    【AI】教你如何为 OpenClaw 安装 Skills

    2026年3月13日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号