网页加载速度缓慢的原因分析

来源:互联网 发布:机智软件价格 编辑:程序博客网 时间:2024/05/01 18:46


分析工具:

(1)mmtrix性能魔方:http://www.mmtrix.com/  

(2)Firefox的yslow插件 http://www.cnblogs.com/AustinAn/p/3560906.html?utm_source=tuicool&utm_medium=referral

 (3)google chrome的page speed 插件


参考文章:

http://www.cnblogs.com/AustinAn/p/3560906.html?utm_source=tuicool&utm_medium=referral

http://blog.sina.com.cn/s/blog_4d834cf30101cbde.html

http://www.yxxme.com/903.html


用户打开网页的速度慢,是因为其中某个环节出了问题,或者不够优化。简要总结下网页打开速度慢的原因,主要有以下几点:

一、网络最小带宽

这是最主要的因素,也就是网友经常说的宽带不够。同样的网站,如果宽带高,访问速度就会明显变快。

网络的带宽包含网站地点服务器带宽和用户端带宽两个方面,对接点指的是出口端与进口端(如电信对网通的对接点)。

二、DNS解析速度

DNS解析是从域名到IP的解析。人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成。

DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间。许多人无视了DNS解析的因素,其实它对网站解析速度也是十分重要的。

三、服务器及客户端硬件配置

相同的网络环境下,双核的服务器的运算能力必定要强一些。同样在客户端,相同的网络环境下,你用一台配置英特尔i7处理器和i3处理器来打开相同的页面,速度也一定不一样。

四、服务器软件

在服务器端,安装软件的数量以及运行是否稳定都会影响到服务器环境,进而影响到网络速度。例如服务器配置软件防火墙,就会导致网络速度受影响。

五、页面内容

如果网页包含大量未经处理的图片,而这些图片很大,就会导致打开速度变慢。其他如Flash和影视文件,都会影响访问速度。

同时冗余代码也是拖慢网站速度的因素之一。站长需要尽量优化代码,用最少的代码,实现最佳的效果。

六、数据库操作

小网站做数据库操作也会影响网站速度,尤其是同时有许多用户提交评论时,就会发生操作数据库锁死,致使网站打不开。

七、使用javascript特效

网站上运用javascript特效是大忌,不只是无法被搜索引擎抓取,还会因为不断向服务器提出请求,导致添加服务器负担,网站变慢。

具体的例子如鼠标特效、节目的特效、状态栏的特效等等。这些特效的原理是先由服务器下载到用户端的机器,然后在本地机器上运转,最终被用户看到。特效做的多了,用户本地机器上就要运转大半天才干悉数完成。

css,js该合并的合并。

八、过多引用其他网站内容

例如引用其他网站的图像、视频文件等。如果链接到的网站速度慢,甚至那家网站已经不存在了,那么用户打开网页的速度就会十分慢。

 九、后端问题

 请求过长、请求个数过多,某个请求耗费时间过长(概率比较大的几个可能是:a)资源在第三方站点上,他们很慢;b)这个资源太大了;c)这个资源使用的域名有问题。)。

           十、网络问题

当网页加载很慢的时候,应如何分析其原因并解决问题?

仔细看一下一个单独的http请求,他们会分为好几段,分别是域名解析、建立连接、发送请求、等待响应和接收数据几个阶段。理论上域名解析和建立连接应该占用的时间很小才对,主要的时间应该用在后面几个阶段上。上图中,浅灰色和灰色分别代表域名解析和建立连接,可以看出这两个请求中花费在网络层上的时间太长了,超过总时间的一半还要多。网络层时间过长除了可能和底层网络有关之外,还可能和站点的服务端性能有关(后端RD的事情哦)。当然,如果这种情况发生在向第三方站点发送的请求上(实际上也经常发生),你就可以建议妹子取消或者更换某些站点功能从而避免这样的请求了。

         十一、接收数据时间过长

上面说了,http请求的大部分时间应该花在后面几个阶段,比如等待响应和接收数据。但是,如果接收数据的时间太长了,长到数百毫秒甚至以秒计算的时候,那也是有问题的。这种情况一般是因为下载的内容太重了,例如大图片、大脚本等。这类问题可以使用GZIP压缩、图片压缩或者JS/CSS的minify等手段来解决。

         十二、js阻塞请求

当网页加载很慢的时候,应如何分析其原因并解决问题?

图中两个连续的请求之间出现了一个很大的空隙,为啥会出现这个空隙呢?可能是因为写的js性能有问题,解析执行js花了很长时间,导致这段时间的资源加载都被阻塞住了。

他还有一些因素,例如我国的宽带网络存在互联互通的问题,国内南北方服务器互访会出现延时现象,直接影响用户的网页访问体验。所以就有很多企业在选择网站空间的时候会尽量选择双线或者多线的服务器。




0 0