网页加载慢,有哪些原因?如何定位一个bug?

1.1. 一个空白页面怎么定位?
这个问题很有意思,就经验来说,如果页面完全一片空白。极有可能是后端出现问题,并且禁用了错误输出。比如apache2,后端配置无错误输出,并且服务状态500,这个时候页面就是一片空白。
如果是前端导致的,那么极有可能是单页应用异常,因为普通的html输出,哪怕出了一些错误,也不太可能一片空白。
排查步骤如下:
1、打开能看到源码和request、response的浏览器,如chrome,查看源码输出,如果做不到,那么使用局域网数据监控软件查看页面输出。查看源码是否有异常,http状态等,本步骤用于检查具体是后端还是前端问题,还是网络问题。
2、如果是后端问题,那么后端查看accesslog、程序日志,看看是否有问题
3、如果是前端问题,那么根据给出的js异常之类的排查

1、先确保网络连接通畅。
2、查看网络url地址是否输入有误。
3、打开控制台console查看报错信息js代码。
4、查看接口访问是否有请求。
5、查看路由是否有path或者name的错误,导致加载了不存在的页面。

网页加载慢,有哪些原因?
1.带宽不足,首先想到的就是自己网速的问题,但是一般网速在1M以上的,打开网页一般不会是很慢的。网站服务器的带宽不够的话,当大量用户访问的时候,网页的加载也是很慢的,这就是网络的出口端和入口端两个方面

2 硬件配置低,本机的配置也会是一方面的,但是只要不是老赛扬单核+512M的配置,一般不会是电脑配置的问题。服务器端的配置也是同样的道理。

3 CPU或者是内存被占满的时候,打开网页很是会很慢的,因为整个电脑都很慢

4 DNS解析慢,域名的解析是需要专门的域名解析服务器来完成的,DNS解析包括往复解析的次数及每次解析所花费的时间,它们两者的积即是DNS解析所耗费的总时间,在http请求的过程中,域名解析和建立连接占的时间很多。

5 JS阻塞请求,写的js代码出现问题,解析就会花费很长时间,这两个js请求之间会出现一个很大的空隙,就会导致这段时间的资源加载都被阻塞住,

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

7 加载某个资源太慢,如果某个请求比其他的请求多出很多的时间,那么一般情况就是某个资源的加载太慢,导致了整个网页变慢,原因有可能是1)资源在第三方站点上,他们很慢;2)这个资源太大了;3)这个资源使用的域名有问题

8 后端代码问题,主要有代码冗余、数据库发生锁死、动态请求时间过长等,这就需要RD优化一切可以优化的东西了

9 前端页面请求的资源过多,onload之前如果有几百行,速度自然会慢的,如果请求的资源不存在,那么速度将会更慢

10 网页本身中包含了追踪或者是分析用户的工具,从而导致网页的加载时间变的慢,比如之前海盗湾中会给用户的电脑插入挖矿的js脚本

如何定位BUG?
用户层面问题指的是用户自己的环境问题或者操作问题,比如环境不通,或者操作不正确。这种问题一般不是bug,当然,如果要考虑构建更加健壮的软件,那么可以根据实际情况来决定要不要处理这类问题。
到第二步,用户在Web页面进行正常操作时,也可能会发现问题。这类问题一般通过观察以及利用一些常识可以发现,比如样式问题一般是css的问题,交互问题一般是js的问题,文本问题一般是html的问题(当然有可能是其他问题,例如js生成html)。
到第三步,Web页面操作后,比如发出一个请求,可能会进入中间件这个层面。我这里说的中间件是广义上的,比如LVS、CDN、各种缓存服务器等等。我们遇到过一个问题,发现刚刚上传的图片进行读取展示时就读不到,那么可以想到可能是负载均衡时将上传照片和读取照片两个请求分配到了不同的服务器导致的,也就是我们常说的会话保持。当然,中间件问题有时候是和开发相关的,有时候是公司其他团队负责的,比如360公司就是OPS在负责。当然,中间件也不仅仅会出现在这一步,实际的项目中可能还会用到更多的基础设施,比如消息中间件、数据存取中间件等,如果发现了相应的问题也就需要有对应的思路去排查。
接着再往下到第四步,服务会转发到我们真正的后端服务层,web服务器、应用服务器比如nginx、tomcat会收到请求。如果发现内存溢出,那么就可能会定位到是tomcat配置的问题;如果请求返回404,也可能是nginx配置不当。当然,这个时候可能会遇到一些环境问题,比如测试环境没有的问题,到线上就有了,很可能是环境原因,比如jdk版本不同、tomcat版本不同、jar包版本不同等等。
最后一层是数据库。代码没有问题,不代表软件没有问题。数据库层面也可能会有各种各样的问题,比如字段的约束问题等等。假如一个文本框的前端校验和接口校验的文本长度最大是50,但数据表字段设定的是varchar(30),那么在存数据的时候肯定会报错。再比如之前发现一个数据库的问题,测试环境没有,到线上却有了,那么也可以看下是不是数据库版本不同导致的。
上面我们说的是问题定位的一个大致思路。每一个环节都有可能出现bug,既可能是response的问题,也可能是前端回调处理的问题。有的问题可能会直接暴漏在用户面前,有些则可能需要我们去分析日志。
当然,很多时候我们不需要这样一层一层去定位,经验丰富的开发或者测试根据现象可能马上能定位到究竟哪里出了问题。

原文地址:https://blog.51cto.com/14232658/2486457

时间: 2024-10-06 00:28:21

网页加载慢,有哪些原因?如何定位一个bug?的相关文章

影响网页加载速度慢的原因

第一.DNS域名解析 当浏览器向服务器发出请求后,首先会有DNS解析的,从而把网站URL解析为具体的IP地址,在这一步骤,可以做很多工作.例如许多小网站都使 用的单线的IP,门户网站建设公司的许多网站都是使用的电信单线的IP,可是当网通用户打开的时候,速度却出奇的慢,这时候,我们可以采用双线IP,电信 一个IP,网通一个IP,然后采用dnspod进行智能判断.解析,当网通的用户访问我们网站时,我们就用网通的IP来响应,当电信的用户访问时,我们就 用电信的IP来响应,这样大大的加快了页面的加载速度

通过chrome浏览器分析网页加载时间

今天趁着下班的时间看了下chrome浏览器的网页加载时间分析工具和相关文档,简单写点儿东西记录一下. 以百度首页加载为例,分析下一张图片1.jgp(就是背景图)的加载时间 看右侧的Timing标签,从下往上看各个阶段: 最下面一行,Explanation是一个链接,它链接到了chrome对Timing解释的文档(从这里可以看出chrome对开发人员真的很友好),这张图片加载总共花费的时间为:36.32ms. Content Download,浏览器下载响应文件所花费的时间26.84ms,与本地网

网站加载很慢的原因!!!

公司网站打开总是很缓慢,这个情况一直出现了很久,未曾解决.这是查询到的一些状况: 1. 用MS Access数据库作为网站数据源. Access数据库并不适合真正投入使用的网站,当访问Access数据库文件时,会自动生成一个相匹配的ldb文件,用于存储访问信息,同时避免读取数据冲突,每增加一个访问连接,就会写一条记录到ldb文件,大小是64字节,最多支持255个连接,所以ldb文件最大是16KB!当所有连接数都关闭了,ldb文件会自动被删除. 如果读取数据库文件连接数过多,或超过连接数限制,或l

如何提高网页加载速度(二)

优化网页图片文件你的网页一定有图片,加载一个网页往往图片的总尺寸是最大的,特别是那些颜色丰富的背景图片和大副广告图片.所以一般要在同等图片质量的情况下要尽可能地 减小图片尺寸.在Photoshop中我们可以用保存为Web图片的选项试一下.图片也有几种常用的文件格式.如JPEG一般是用来存储照片或全彩色图片 的,比如照片.屏幕截图等.GIF图片格式的颜色要比JPEG少,适合做小图,如制作按钮.Logo等,另外GIF支持动态效果.PNG跟GIF比较相 似,但它的尺寸较大,支持的颜色也比GIF要多,并

网站加载速度慢的原因

排查网站打开速度慢的原因: 1 网站服务器速度或租用空间所在服务器速度 服务器空间速度是网站打开速度快的硬件基础,也是先决条件.否则即使你网站页面设计的非常"苗条",网站打开速度也会打折扣.解决办法:要找你的空间商解决或换空间商. 如何检测服务器速度快慢呢? 方法一: ping命令看连接到服务器的时间和丢包情况. 1>单击"开始"键并选择运行:接着在"运行"对话框中输入cmd 注:有的可能是输入command,也有可能有的windows不带

ecshop网页加载waiting(TTFB)时间过长的解决方法

服务器的内存8G,CPU为4核,宽带8M的阿里云 windows server 2012 . apache 2.4.php 5.3 .mysql 5.5 每次打开网站都觉得有点慢,用谷歌浏览器查看网页加载时间都在1秒以上. 查找原因 在init.php文件在 $start_time =  microtime(true); //放在不同的位置,查看最后输出的时间差定位耗时位置 echo microtime(true) - $start_time;exit; //放在文件最后 最后定位出 if (!

减少域名DNS解析时间将网页加载速度提升新层次-DNS缓存/预读取/拆分域名

我们知道在用户访问网站时先得经过域名DNS解析这一过程,可能很多人对于DNS解析时间平常并没有太在意.性能稳定.响应时间快的DNS域名解析服务与不稳定.响应过慢的DNS的域名解析时间可能相差1秒,而对于网站存在过多的域名解析请求,这个时间积累起来就非常地多了. 本篇文章就来分享一下通过优化网站DNS域名解析,减少域名DNS解析时间,从而让网站在原来的访问速度的前提下继续实现新的飞跃.想要了解更多的有关于网站和服务器优化加速的方法,可以试试: 1.加快SSL:Nginx和Apache上安装SPDY

网页加载进度条的实现

本次主要介绍一下网页加载进度的实现.如下图,在页面加载的时候,上方红色的进度条 网页加载进度的好处是能够更好的反应当前网页的加载进度情况,loading进度条可用动画的形式从开始0%到100%完成网页加载这一过程.但是目前的浏览器并没有提供页面加载进度方面的接口,也就是说页面还无法准确返回页面实际加载的进度,本文中我们使用jQuery来实现页面加载进度条效果. 首先我们要知道的是,目前没有任何浏览器可以直接获取正在加载对象的大小.所以我们无法通过数据大小来实现0-100%的加载显示过程. 因此我

VB判断webbrowser网页加载完毕

'====VB判断webbrowser网页加载完毕 Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant) If (pDisp Is WebBrowser1.Object) Then Msgbox "网页下载完毕!" End If End Sub