网站打开速度慢的原因,排查方法及优化方法(大全)
xsobi 2024-12-13 16:50 1 浏览
如果你的网站打开速度过慢,而你又不知道该如何解决,那么这篇文章是非看不可了。手把手地教你如何排查网站打开慢的原因,以及优化方法。
排查网站打开速度慢的原因:
1网站服务器速度或租用空间所在服务器速度
服务器空间速度是网站打开速度快的硬件基础,也是先决条件。否则即使你网站页面设计的非常"苗条",网站打开速度也会打折扣。解决办法:要找你的空间商解决或换空间商。
如何检测服务器速度快慢呢?
方法一: ping命令看连接到服务器的时间和丢包情况。
1>单击“开始”键并选择运行;接着在“运行”对话框中输入cmd
注:有的可能是输入command,也有可能有的windows不带DOS系统。
2>键入Ping和您要测试的网址(比如:Ping www.viila.net -t)。然后回车,便得到你访问服务器的回时间。
一般,“PING”命令会自动进行下去,直到你让它终止,敲“ctrl +C”。如果你熟悉使用Telnet中PING的功能,并且你具有在不同网络上的Telnet帐号,你就可以以不同的网络为基础,对其他的主机(IP地址或域名)进行PING的测试,你可以比较在不同的访问点这些被访问主机的回应时间,并得到“丢包率”、平均回应时间等测试结果。
time:显示了信息包到达远程主机后返回的时间。计算定位为毫秒。数值越小速度越快。
lost:丢包情况。
TTL:生存时间 指定数据包被路由器丢弃之前允许通过的网段数量。
一个速度好的机房,首先丢包率不能超过1%,最好是1000个没有一个丢包,这种是最理想的,但是这个不是绝对值,只要低于1%的都属于不错的路由情况了。
其次ping值要小,同城的电信adsl ping平均值绝对不能超过20,一般在10,跨省的adsl ping平均值应该在20-40属于正常。
第三点是ping值要均匀,如果最小的ping值只有4,但是不时的有几十,最大有79的出现,这个就是路由不稳定的表现,同样的电信的adsl,尽管最小也有8,但是最大也只有9,就说明路由稳定。
方法二: 查看同台服务器上其它网站的打开速度。
相同IP地址站点查询网址:http://indexed.linkhelper.cn/sameip.asp
通过上面的查询工具可以看到和自己在同一台服务器上的网站个数和网址。可以看看其它网站是否打开也慢呢。
2 电信和联通互访瓶颈问题。
如果空间打开的速度时快时慢,甚至有时候打不开,那就是空间不稳定的原因。要找你的空间商解决或换空间商了;如果是在有的地方打开速度快,有的地方打开速度慢,那应该是网络线路的问题。电信线路用户访问放在联通服务器的网站,联通线路用户访问放在电信服务器上的网站,相对来说打开速度肯定是比较慢。
解决办法:如果购买空间的话,建议购买双线空间或多线空间。这已不是新鲜的概念,大部分的虚拟主机商都有两线或多线空间,价格高一些,但是从用户体验角度来说是物有所值的。
3 从网站本身找问题,网站的问题包括网站程序设计,网页设计结构,网页内容三个部分。
网站程序设计:
1>网页中如果有幻灯片播放效果的代码,需要审查一下,是否严重拖慢网站打开速度。
2>如果排除各方面原因,可以找搞程序设计的相关专业人士,查看程序的设计结构是否合理。
网页设计结构:
1>如果是table布局的网站,查看是否嵌套次数多太,或是一个大表格然后分成多个表格这样的网页布局。解决办法:建议用div布局,配合css ,这样不仅打开速度快,也有利于修改。
2>如果网站中有统计代码,在线客服或是其它js代码,看看是否放到了网页代码的最后面。解决办法:最好尽可能的放到网页代码最后,当网站代码加载完毕,才执行这些代码。
3>可能有错误的代码
一种情况是查看一下网页代码是否有不存在的图片或文件路径代码。(如上图所示用firebug看到20.jpg这个图片,红色显示表示实际不存在,代码中有调用它的代码)因为本身图片在空间中不存在,可是在执行代码的时候,执行到这一行时,却要一直加载这个图片,在细微程度上是会影响到网站的速度的。
另一种情况是从别的网站转抄的特效javascript代码,可能转载不全,有许多网页错误,造成网站打开速度慢。解决办法:修正网站上代码错误。
4>尽量减少javascript的特效的使用。
如:鼠标特效、栏目特效、状态栏特效等,这些特效的原理是先由服务器下载到你本地的机器,然后在本地机器上运行产生,如果观看你网站的网友机器配置低的话,要运行一段时间才能完成。
网页内容:
1>查看网页中是否有许多尺寸大的图片存在,如果非要图片效果来表达的话,可以把大图片切分成多个小图片。图片进行减肥处理,可以使字节数变得较小,否则很多的图片会占用很多空间又使网站打开速度变得很慢。可以用photoshop、fireworks等作图软件将图片尺寸缩小,使图片的质量稍微降低一下,在图片质量和图片大小之间寻找一个最佳的比例。
2>查看网页中是否有尺寸大的flash文件存在,排除表达效果外,尽量少用大型flash。
3>有的朋友喜欢在网页中加音乐,用户一打开网站,就有背景音乐播放,这样的事情尽量不要做。
4>内容中过多地引用了其它网站的内容。如引用其他网站的图片或其它内容,如果那个网站的速度慢,或者那个网站的页面已经不存在了,打开的速度就会更慢。解决办法:这样问题常见的情况是,友情链接交换中图片链接真接链接别的网站的logo图片,建议先把对方的logo图片上传到自已的网站空间中,然后加上链接。第二种情况是许多朋友喜欢用iframe嵌套别的网站上的搜索,查ip等小功能模块,建议少用这种方式。
查看网站中图片、代码等加载情况可以用 firefox浏览器的插件工具firebug 工具查看。
优化加载速度的方法:
一、优化图片
几乎没有哪个网页上是没有图片的。如果你经历过56K猫的年代,你一定不会很喜欢有大量图片的网站。因为加载那样一个网页会花费大量的时间。
即使在现在,网络带宽有了很多的提高,56K猫逐渐淡出,优化图片以加快网页速度还是很有必要的。
优化图片包括减少图片数、降低图像质量、使用恰当的格式。
1、减少图片数:去除不必要的图片。
2、降低图像质量:如果不是很必要,尝试降低图像的质量,尤其是jpg格式,降低5%的质量看起来变化不是很大,但文大小的变化是比较大的。
3、常识使用脚本文件代替效果:
比如一些web2.0的样式,如果使用ps制作,每个图片基本会增加%5-%25的大小成本.
相反,使用javascript代码来实现效果,仅仅只增加几个字节.
二、图像格式的选择
一般在网页上使用的图片格式有三种,jpg、png、gif。三种格式的具体技术指标不是这篇文章探讨的内容,我们只需要知道在什么时候应该使用什么格式,以减少网页的加载时间。
1、JPG:一般用于展示风景、人物、艺术照的摄影作品。有时也用在电脑截屏上。
2、GIF:提供的颜色较少,可用在一些对颜色要求不高的地方,比如网站logo、按钮、表情等等。当然,gif的一个重要的应用是动画图片。
3、PNG:PNG格式能提供透明背景,是一种专为网页展示而发明的图片格式。一般用于需要背景透明显示或对图像质量要求较高的网页上。
三、优化CSS
CSS叠层样式表让网页加载起来更高效,浏览体验也得到提高。有了CSS,表格布局的方式可以退休了。
但有时我们在写CSS的时候会使用了一些比较啰嗦的语句,比如这句:
复制内容到剪贴板
代码:
margin-top: 10px;
margin-right: 20px;
margin-bottom: 10px;
margin-left: 20px;
你可以将它简化为:
margin: 10px 20px 10px 20px;
又或者这句:
<p class="decorated">A paragraph ofdecorated text</p>
<p class="decorated">Secondparagraph</p>
<p class="decorated">Thirdparagraph</p>
<p class="decorated">Forthparagraph</p>
可以用div来包含:
<div class="decorated">
<p>A paragraph of decoratedtext</p>
<p>Secondparagraph</p>
<p>Thirdparagraph</p>
<p>Forthparagraph</p>
</div>
四、网址后加斜杠
有些网址,比如http://www.viila.net/512当服务器收到这样一个地址请求的时候,它需要花费时间去确定这个地址的文件类型。如果220是一个目录,不妨在网址后多加一个斜杠,让其变成http://www.viila.net/512/,这样服务器就能一目了然地知道要访问该目录下的index或default文件,从而节省了加载时间。
五、标明高度和宽度
这点很重要,但很多人由于懒惰或其它原因,总是将其忽视。当你在网页上添加图片或表格时,你应该指定它们的高度和宽度,也就是height和width参数。如果浏览器没有找到这两个参数,它需要一边下载图片一边计算大小,如果图片很多,浏览器需要不断地调整页面。这不但影响速度,也影响浏览体验。
下面是一个比较友好的图片代码:
<img id="img" height="200" width="450"src="/Article/UploadFiles/200805/20080521125828444.gif"alt="banner" />
当浏览器知道了高度和宽度参数后,即使图片暂时无法显示,页面上也会腾出图片的空位,然后继续加载后面的内容。从而加载时间快了,浏览体验也更好了
六、减少http请求
当浏览者打开某个网页,浏览器会发出很多对象请求(图像、脚本等等),视乎网络延时情况,每个对象加载都会有所延迟。如果网页上对象很多,这可以需要花费大量的时间。
因此,要为http请求减负。如何减负?
1、去除一些不必要的对象。
2、将临近的两张图片合成一张。
3、合并CSS文件
看看下面这段代码,需要加载三个CSS文件:
<link rel="stylesheet" type="text/css"href="/body.css" />
<link rel="stylesheet" type="text/css"href="/side.css" />
<link rel="stylesheet" type="text/css"href="/footer.css" />
我们可以将其合成一个:
<link rel="stylesheet" type="text/css"href="/style.css" />
从而减少http请求。
从而减少http请求。
七、其它小技巧
1、去除不必要加载项。
2、如果在网页上嵌入了其它网站的widget,如果有选择余地,一定要选择速度快的。
3、尽量用图片代替flash,这对SEO也有好处。
4、有些内容可以静态化就将其静态化,以减少服务器的负担。
5、统计代码放在页尾(或者使用延迟加载)。
- 上一篇:史上最全java架构师技能图谱(上)
- 下一篇:JavaScript如何入门?
相关推荐
- 好用的云函数!后端低代码接口开发,零基础编写API接口
-
前言在开发项目过程中,经常需要用到API接口,实现对数据库的CURD等操作。不管你是专业的PHP开发工程师,还是客户端开发工程师,或者是不懂编程但懂得数据库SQL查询,又或者是完全不太懂技术的人,通过...
- 快速上手:Windows 平台上 cURL 命令的使用方法
-
在工作流程中,为了快速验证API接口有效性,团队成员经常转向直接执行cURL命令的方法。这种做法不仅节省时间,而且促进了团队效率的提升。对于使用Windows系统的用户来说,这里有一套详细...
- 使用 Golang net/http 包:基础入门与实战
-
简介Go的net/http包是构建HTTP服务的核心库,功能强大且易于使用。它提供了基本的HTTP客户端和服务端支持,可以快速构建RESTAPI、Web应用等服务。本文将介绍ne...
- #小白接口# 使用云函数,人人都能编写和发布自己的API接口
-
你只需编写简单的云函数,就可以实现自己的业务逻辑,发布后就可以生成自己的接口给客户端调用。果创云支持对云函数进行在线接口编程,进入开放平台我的接口-在线接口编程,设计一个新接口,设计和配置好接口参...
- 极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关
-
本内容来源于@什么值得买APP,观点仅代表作者本人|作者:iN在之前和大家说过,在iN的家里是没有墙面开关的。...
- window使用curl命令的注意事项 curl命令用法
-
cmd-使用curl命令的注意点前言最近在cmd中使用curl命令来测试restapi,发现有不少问题,这里记录一下。在cmd中使用curl命令的注意事项json不能由单引号包括起来json...
- Linux 系统curl命令使用详解 linuxctrl
-
curl是一个强大的命令行工具,用于在Linux系统中进行数据传输。它支持多种协议,包括HTTP、HTTPS、FTP等,用于下载或上传数据,执行Web请求等。curl命令的常见用法和解...
- Tornado 入门:初学者指南 tornados
-
Tornado是一个功能强大的PythonWeb框架和异步网络库。它最初是为了处理实时Web服务中的数千个同时连接而开发的。它独特的Web服务器和框架功能组合使其成为开发高性能Web...
- PHP Curl的简单使用 php curl formdata
-
本文写给刚入PHP坑不久的新手们,作为工具文档,方便用时查阅。CURL是一个非常强大的开源库,它支持很多种协议,例如,HTTP、HTTPS、FTP、TELENT等。日常开发中,我们经常会需要用到cur...
- Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介
-
本章涵盖使用Actix提供静态网页...
- 我给 Apache 顶级项目提了个 Bug apache顶级项目有哪些
-
这篇文章记录了给Apache顶级项目-分库分表中间件ShardingSphere提交Bug的历程。说实话,这是一次比较曲折的Bug跟踪之旅。10月28日,我们在GitHub上提...
- linux文件下载、服务器交互(curl)
-
基础环境curl命令描述...
- curl简单使用 curl sh
-
1.curl--help#查看关键字2.curl-A“(添加user-agent<name>SendUser-Agent<name>toserver)”...
- 常用linux命令:curl 常用linux命令大全
-
//获取网页内容//不加任何选项使用curl时,默认会发送GET请求来获取内容到标准输出$curlhttp://www.baidu.com//输出<!DOCTYPEh...
- 三十七,Web渗透提高班之hack the box在线靶场注册及入门知识
-
一.注册hacktheboxHackTheBox是一个在线平台,允许测试您的渗透技能和代码,并与其他类似兴趣的成员交流想法和方法。它包含一些不断更新的挑战,并且模拟真实场景,其风格更倾向于CT...
- 一周热门
- 最近发表
-
- 好用的云函数!后端低代码接口开发,零基础编写API接口
- 快速上手:Windows 平台上 cURL 命令的使用方法
- 使用 Golang net/http 包:基础入门与实战
- #小白接口# 使用云函数,人人都能编写和发布自己的API接口
- 极度精神分裂:我家没有墙面开关,但我虚拟出来了一系列开关
- window使用curl命令的注意事项 curl命令用法
- Linux 系统curl命令使用详解 linuxctrl
- Tornado 入门:初学者指南 tornados
- PHP Curl的简单使用 php curl formdata
- Rust 服务器、服务和应用程序:7 Rust 中的服务器端 Web 应用简介
- 标签列表
-
- grid 设置 (58)
- 移位运算 (48)
- not specified (45)
- patch补丁 (31)
- strcat (25)
- 导航栏 (58)
- context xml (46)
- scroll (43)
- element style (30)
- dedecms模版 (53)
- vs打不开 (29)
- nmap (30)
- webgl开发 (24)
- parse (24)
- c 视频教程下载 (33)
- paddleocr (28)
- listview排序 (33)
- firebug 使用 (31)
- transactionmanager (30)
- characterencodingfilter (33)
- getmonth (34)
- commandtimeout (30)
- hibernate教程 (31)
- label换行 (33)
- curlpost (31)