一个网站的加载速度是用户体验是否良好的最直观因素,所以通过合理的方法对网页的加载速度进行优化是十分必要的,下图是Yahoo!的YSlow所指出的23个因素。
1、减少HTTP请求次数
一个页面的加载从开始到结束,其实大部分时间都消耗在下载页面元素(诸如HTML、CSS、Javascript、Flash、图片等)上。据统计,HTTP请求在无缓存情况下占去了40%到60%的响应时间,而每增加一个元素,网页的平均载入时间就会增加40ms(宽带)或250ms(窄带)。
减少HTTP请求次数的方法大致有以下3种:
a. 避免不必要的HTTP请求:
例如用CSS代替圆角图片。
b. 合并CSS、Javascript、图片文件:
将CSS、Javascript分别存储在一个大文件中加载,使用CSS Sprites(图片拼合技术)
c. 优化缓存:
以百度为例,首页的加载总共8.3KB,其中5.3KB来自缓存,可见合理使用缓存可以极大降低HTTP的请求次数。同时配合Expires和Etags,可以设置缓存的过期期限和检查客户端缓存和服务器端的数据是否匹配。
d. 尽量避免使用内联图像:
在(X)HTML页面中尽量少的通过img的src属性引入图片,尽可能将图片放置在CSS中。
2、使用CDN(内容分布网络)
CDN,即Content Delivery Network,其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络”边缘”,使用户可以就近取得所需的内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。但是CDN对于个人用户和小公司而言,成本较高,只能望尘莫及。
3、避免空的src和href链接
4、在http头部添加Expires
服务端设置Expires是为了告知客户端内容需要缓存多长时间,例如:
1
|
Expires: Thu, 15 Apr 2010 20:00:00 GMT //告知客户端准确的过期时间
|
如果你使用的是Apache服务器,可以使用ExpiresDefault来设定相对当前日期的过期时间,有点保质期的意味:
1
2
3
|
<FilesMatch "\.(gif|jpg|js|css)$">
ExpiresDefault "access plus 10 years"//告知客户端缓存10年后过期
</FilesMatch>
|
要切记,如果使用了Expires文件头,当缓存的内容需要改变时就必须改变文件名,Yahoo!给我们了一个非常好的建议:在文件名中加上版本号,如yahoo_2.0.6.js。
5、使用Gzip压缩文件内容
Gzip是目前最流行也是最有效的压缩方式,它需要服务端的支持,使用Gzip大概可以减少70%的响应规模,目前大约有90%通过浏览器传输的互联网交换支持gzip格式。
6、将样式表置于页面顶部
7、将Javascript置于页面底部
8、避免使用CSS Expression
9、外部引用CSS Style和Javascript
这么做的目的是为了使得CSS和Javascript能够在浏览器中缓存,如果不同的页面都用到的CSS在缓存之后就不会重复加载,同时也减少了HTTP的请求次数。
10、减少DNS的查找次数
当我们在浏览器中输入一个域名之后,会有20~120ms的时间将域名转换为对应的IP地址,减少域名的数目,就会减少DNS的查找次数,从而降低DNS解析所耗费的响应时间,但是每个域名有并行下载数的限制,所以依照Yahoo!的建议,我们可以使用2~4个域名来获取DNS解析时间和并行下载数的平衡。
11、压缩CSS和Javascript
众所周知,元素的体积越小,加载速度就越快,使用JSMin和YUI Compressor可以对Javascript进行很大程度的压缩,同时YUI Compressor还可以压缩CSS,YSlow还提供了一个Smush.it工具,它可以实现对页面中所有图片的无损压缩。
12、避免使用重定向(跳转)
用真实世界投射法分析,假如你需要到A城B店购买一样物品,但是当你到了之后发现,门上写着:“本店铺已搬迁至C城D店”,你会有什么感受?被骗了?崩溃了?放弃了?在网页的用户体验中也是一样的道理,使用重定向毫无疑问会在拖慢加载速度的同时也降低了用户的体验。
13、移除冗余的CSS和Javascript
14、配置Etags
15、让Ajax能够缓存
16、使用GET完成Ajax请求
Yahoo!Mail团队发现,当使用XMLHttpRequest时,浏览器中的POST方法是一个“两步走”的过程:首先发送文件头,然后才发送数据。因此使用GET最为恰当,因为它只需发送一个TCP包(除非你有很多 cookie)。IE中URL的最大长度为2K,因此如果你要发送一个超过2K的数据时就不能使用GET了。
17、减少DOM元素的数量
下边的代码可以很方便的获取页面中DOM元素的总数:
1
|
alert(document.getElementsByTagName('*').length);
|
那么多少个DOM元素算是多呢?Yahoo!主页是一个内容非常多的页面,但是它只使用了700个元素(HTML标签)。DOM元素的数量除了对页面的加载速度有影响之外,也影响对搜索引擎的友好程度,事实上,有些搜索引擎在读取一定量的字符之后就会停止解析剩余的HTML,从而漏掉重要的内容,因此减少DOM元素的数量,精简优化网页的结构对SEO也有着举足轻重的作用。
18、避免404错误
19、减小Cookie的体积
20、使用域名无关性的Cookie
如果我们之前为了增加并行下载数,单独设置了2~4个域名加载不同的页面元素,比如benben.cc为主域名,img.benben.cc加载图片元素(其实img.benben.cc依然是指向benben.cc/img),但是如果我们给benben.cc设置了cookie,那么所有对img.benben.cc的请求都会包含cookie,所以我们可以购买一个新的域名来单独存放静态内容,前提是不对该域名设置cookie,例如:Yahoo!使用的是 ymig.com,YouTube使用的是ytimg.com,Amazon使用的是images-anazon.com等等,如果不想这么做,也可以只对www主机头设置cookie来解决该问题。
21、避免使用Alpha滤镜
22、不要在HTML页面中缩放图片
我就有过这种表面看起来省时省力,其实却拖慢了加载速度的行为,我为了不在服务端对每个大图单独生成相应的缩略图,就在客户端对原始图片设置width和height从而实现缩略图的缩放,后来我发现这种行为会很大程度上影响一个页面从开始解析到完成加载的总时间。
23、使Favicon尽量小巧且可缓存
a. 文件尽量小巧,最好小于1Kb。
b. 合理设置缓存时间,如果你不想更改Favicon的默认名称,就把Expires设置为未来的几个月,当然,这个时间你可以根据你更换Favicon的频率动态掌握。
分享到:
相关推荐
在互联网使用过程中,浏览器的速度直接影响了我们的上网体验,特别是对于经常使用IE浏览器的用户来说,优化其加载速度显得尤为重要。以下是一些方法来提升IE浏览器的网页加载和打开速度: 首先,我们可以通过调整IE...
这样,即使网页加载速度较慢,用户也能看到进度条在持续移动,提升用户的等待感知。 此外,为了达到与微信更为接近的效果,我们还需要考虑一些细节。例如,当网页加载过程中出现错误时,进度条应该如何显示错误提示...
网页加载速度的快慢直接影响着用户的满意度,而HTTP网页速度查看工具就是针对这一问题而设计的。 该工具主要功能包括以下几个方面: 1. **解析**:工具能够追踪HTTP请求的解析过程,包括URL的分解、路径查找等,...
1. **优化网页图片文件**:图片是网页加载速度的主要影响因素。可以通过以下方式来减小图片尺寸: - 使用适合的图片格式:JPEG适用于全彩图像,如照片;GIF适合小图标和动画,支持透明背景;PNG则在需要高质量和...
在网页设计和开发中,有效地管理页面加载是优化用户体验的关键因素。"Jquery网页部分内容加载"这个主题就涉及到了如何利用jQuery库实现网页内容的按需加载,即延迟加载(Lazy Loading)或局部加载(Partial Loading...
网页打开速度分析诊断工具是一种非常实用的软件,它主要用于帮助用户评估和优化其网页加载速度。在互联网时代,快速的网页加载对于用户体验至关重要,无论是个人用户还是企业,都需要确保他们的网页能在各种网络环境...
在互联网使用体验中,网页加载速度是一个关键因素。网页加载速度慢,不仅会降低用户体验,还可能影响网站的排名和用户的忠诚度。因此,了解和掌握提高网页浏览速度的方法至关重要。 首先,标题和描述中提到的"PCCPU...
提高网页加载速度是提升用户体验和网站性能的关键因素。以下是一些针对HTML代码和后台ASP.NET逻辑的优化策略,旨在加快页面加载效率。 1. **兼容性优化**:确保页面在不同浏览器如IE6、IE7和Firefox之间具有良好的...
3. **性能优化**:确保动画不会影响页面加载速度,尽可能减少文件大小和复杂性。 4. **适应性**:动画应能在不同设备和屏幕尺寸上正常工作,包括移动设备和平板电脑。 5. **可用性**:考虑到辅助技术,确保动画不会...
本技术主题涉及一种“电信设备-快速加载网页信息的方法及装置”,旨在解决现有的网页加载速度慢、用户等待时间长的问题,从而提高用户的上网体验。 首先,我们要理解,网页的加载速度受多种因素影响,包括网络带宽...
1. **优化图片**:图片是网页加载速度的主要影响因素。使用恰当的格式(如JPEG、PNG或WebP),压缩图片大小,同时保持良好的视觉质量。还可以利用CSS精灵技术,将多个小图合并为一张大图,减少HTTP请求。 2. **减少...
【标题】:“加载速度超快的编辑器,很精致” 这款编辑器的亮点在于其卓越的加载速度和精美的设计。在IT行业中,快速的加载速度对于提高用户体验至关重要,特别是对于那些需要频繁编辑代码的开发者而言。编辑器的...
【网页加载速度】是网页设计和优化中的关键因素,它直接影响用户体验和网站的搜索引擎排名。以下是一些提高网页加载速度的方法和技巧: 1. **压缩和优化资源**:压缩HTML、CSS和JavaScript文件,减少文件大小,从而...
在网页设计中,"网页加载等待处理"是一个关键的用户体验考虑因素。当用户访问一个网页时,如果页面加载时间较长,他们可能会感到不耐烦,甚至离开网站。为了解决这个问题,网页开发者会使用各种技术来展示加载过程中...
6. **加载速度**(Page Speed):快速的网页加载速度能提高用户体验,也是搜索引擎评估网站质量的指标之一。 7. **内部链接**:合理使用内部链接可引导用户浏览更多页面,同时有助于搜索引擎理解网站的层次结构。 ...
快速的页面加载速度不仅可以提高用户体验,也是搜索引擎优化的关键因素之一。通过优化图片大小、减少HTTP请求等方式来提高页面加载速度是非常必要的。 ### 十二、社交信号(Social Signals) 社交媒体上的分享、点赞...
在构建和优化网页性能的过程中,速度是一个至关重要的因素。用户对于快速加载的网页有着极高的期待,这不仅关乎用户体验,还直接影响到网站的搜索引擎排名。本文将深入探讨如何通过优化JavaScript来提升网页或Web...
本文主要介绍了20种提升网页速度的技巧,旨在帮助开发者识别和解决网页加载速度慢的问题。 首先,优化网页加载时间不仅有利于那些使用低速连接的用户,而且对于高速互联网用户同样重要。随着Web应用程序的复杂性...
而从实际的角度来说,了解WebKit加载网页的流程有助于优化网页性能,解决加载和渲染过程中遇到的问题,提高网页的响应速度和兼容性。对于维护Web应用程序的开发者而言,掌握WebKit的工作原理,能够更有效地利用...
然而,不恰当的JavaScript使用和管理可能显著拖慢页面加载速度,影响用户体验。本文将深入探讨四种方法来优化JavaScript加载,从而提高页面加载效率。 首先,将`<script>`标签放置在接近`<body>`标签底部的位置。这...