网页如何在1秒内打开?

王志勇 发表于 2022年05月13日 15:45

这是hostloc.com上刚刚的一个提问《你们网站怎么优化到一秒内打开的?线路固定的情况下》。回复当中,几乎没有一楼是使用了很有效的方法。现在因为国内外带宽成熟稳定,确实很多网页能在1秒内打开。

比如CDN缓存,其实是在10年前国际线路很不稳定的情况下,使用CDN使网页有了明显的加速,现在如果去掉CDN,反而访问速度会稍稍快一点点。因为一两年前我尝试过套用CF,后来又去掉了。

网页转成HTML静态页,也不太现实,因为工程量巨大,二是共用部分时常需要修改。尤其是论坛、博客页,因为有评论,这些应该做成动态页。

优化是有方法的
逐一排查瓶颈,多年来我是这样做的,除了第4条,每个人都很容易做到:

1. 去掉https,原因请见这个栏目,大多数的网站不需要https。

https会造成很多网站访问不稳定,包括很多人使用国内空间,访问速度有时不影响,有时会慢0.5秒~2秒。

2. 如果是中文博客、中文网站,域名的DNS一定要使用国内的,首次访问可提高120ms左右。英文网页,就用国外的DNS,如he.net。

3. 关闭所有的Apache(或Nginx)、PHP的访问日志、错误日志,需要在配置文件里修改;关闭btmp文件。这样VPS会一直保持和新机一样快,否则VPS会一年比一年慢,步骤请见前文

4. 程序设计。MySQL是网页慢的一个主要瓶颈。

5. DIV+CSS。现在绝大多数网页都是使用DIV+CSS,不像早期用FrontPage做网页,全是table。用DIV+CSS来实现表格,网页是边下载、边显示,所以网页显示非常快,浏览器刚显示标题,网页马上就出现内容。

不像用大的table实现的表格,是等网页加载完成后,才显示内容。在现在的国内外带宽环境下,大table的网页,显示会慢2~4秒以上。现在几乎没有人用大table了。

6. JS站外文件。有个别博客、网站使用了站外JS,比如一些百度统计。JS一定要放在整个网页的最后,否则,如果放在网页当中,需要到JS这个位置的JS文件加载完毕后,才能显示后面的内容

这也是为什么有时看到有的网页,浏览器标题已经显示了,但是网页会卡10多秒才打开。这种情况不多见,但是仍然存在。

7. 网页一定要启用GZIP压缩,网页打开的速度大约提高2~3倍,方法是在PHP网页的最前面加<?ob_start('ob_gzhandler');?>这一句。

或者通过Apache、Nginx的配置文件来实现GZIP。我是一直使用ob_start('ob_gzhandler');的方法。

上述这些提速步骤,不如说是解除瓶颈的步骤,每一个因素都会影响网页的速度。

8. 前面测试过,PHP 7.4的速度大约是PHP 5.3的10倍。但是对于访问量不大的网站,是看不出区别的,影响远比MySQL的瓶颈小得多。

因为我现在就是同时用PHP 5.3和PHP 7.4。

同理,PHP 5.6,PHP 7.0,PHP 7.3,大多数流量不大的网站(每日IP 1万以下),网页速度方面是看不出来区别的,用哪个都没关系。流量达到一定程度的网站,可能会有影响。

PHP 7.0~PHP 7.3的速度几乎没变化,直到PHP 7.4突然有了提升,PHP 7.4速度约是PHP 7.3的2.1倍。

我使用的都是便宜的,年付不到$10的普通配置的VPS。

5条评论:
1   angel2018 2022-05-14 09:43
勇哥,现在博客用的是php7.2,之前是php5.5,不知道是不是JP-vps的速度快的原因,还是升级了比较新的博客源码,也许如你所说,php7.2也有功劳,速度是明显快了。

自由勇 2022-05-14 09:49
PHP版本,如果用亚洲主机,应该是能看出一点区别,PHP 7.4会更快,速度是PHP 7.2的2倍左右。

用欧美主机,PHP版本几乎就看不出区别了,因为网络的原因,访问速度都会慢一点。

2   angel2018 2022-05-14 09:45
博客打开的和勇哥比,还是慢了一点点,不过试了静态页面,是一点就开。刷一下,就。

自由勇 2022-05-14 09:51
是的,测试主机和网络的速度,完全可以用静态页。

3   王光卫博客 2024-02-16 18:14
静态且少css的网站应该是最快的

发表评论:
名字: (*必填)
博客: (可省)

正文:

  记住信息?

王志勇:1980-09-26 (44周岁)
程序设计,前端设计。

版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。

与此相关的链接
自由勇专栏

Blog存档 Archives

2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +

2020年 +
2019年 +
2018年 +
2016年-2017年(9)
2014年06月-09月(10)
2013年 +
2012年 +
2011年 +
2010年 +
2009年 +
2008年 +
2007年 +
2006年 +
2005年09月(4)

Copyright © 2006-2024 auiou.com All rights reserved.
此Blog程序由王志勇编写