网站加载 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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 提交缺陷报告

    提交缺陷报告一、软件缺陷的判定1.什么是缺陷软件存在着不符合质量需求或违背软件用户、客户、企业意愿的问题,这就是软件缺陷(Defect),又叫“Bug(臭虫)”。2.软件缺陷的判定准则软件未达到产品说明书标明的功能;产品说明书简称为说明(spec)或产品说明(productspec),是软件开发小组的一个协定。它对开发的产品进行定义,给出产品的细节、如何做、做什么、不能做什么。这种协定从简单的口头说明到正式的书面文档有多种形式。软件出现了产品说明书指明不会出现的错误;如金融软件

    2022年9月18日
    0
  • onedrive无限容量_onedrive家庭版扩容5t

    onedrive无限容量_onedrive家庭版扩容5t由于百度网盘的限速,不得已开始捣鼓微软的OneDrive网盘。相对于百度网盘,Onedrive最大的优势是不限速,速度也是难得的友好。相对于百度网盘,Onedrive最大的劣势是空间大小,个人用户注册仅有5G。曾经无数次因为这么小的空间而望而却步,只能硬着头皮给百度交钱。最近无意间发现了Onedrive的空间可以很大,最大的竟然达到了5T。原来Onedrive的5T版本已经流行…

    2022年9月9日
    0
  • 如何用51单片机控制步进电机运动「建议收藏」

    如何用51单片机控制步进电机运动「建议收藏」本来接触单片机挺久了的,但是一直只是停留在非常初级的认识阶段,本科的时候上过几门课,但是从来没有自己捣鼓过单片机,这次突然来了兴趣,感觉一下子学到了好多东西,在这里好好整理一下。这篇文章只适合于入门阶段的小白阅读,高手请绕道。12年年初的时候购买了一套普中科技的“单片机开发试验仪”,好多次想好好学学,结果每一次都半途而废,主要原因还是周围的人都不会用,有问题都不知道找谁问,结果锁到箱子里一直到现在。

    2022年6月1日
    25
  • java numeric_java基本字符数据类型

    java numeric_java基本字符数据类型先看DDL再看自动转换的java类型结论:(范围都是闭区间)numeric[1,4]是Shortnumeric[5,9]是Integernumeric[10,18]是Longnumeric[19]及以上是BigDecimal

    2022年10月31日
    0
  • 安装MySQL8.0_mysql版本命令

    安装MySQL8.0_mysql版本命令第一步:下载下载地址:https://dev.mysql.com/downloads/file/?id=476233第二步:选择文件夹,将压缩包解压我这里放到了E盘第三步:创建my.ini配置文件[mysql]#设置mysql客户端默认字符集default-character-set=utf8[mysqld]#设置3306端口port=3306#…

    2022年9月14日
    0
  • JDK安装教程

    JDK安装教程一、JRE与JDK介绍java是当前比较流行的一种编程语言,当我们开始学习java的时候肯定会先要安装jdk,然后进行环境变量控制。JRE(JavaRuntimeEnvironment)Java运行环境,用来运行JAVA程序的。JDK(JavaDevelopmentKit)Java开发工具包,包含JRE。因此只需要下载安装JDK即可中。JDK是SunMicros…

    2022年6月5日
    34

发表回复

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

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