
前端的高效b高性能(neng)对于一个Web应用来说非常重要,如果一个(ge)Web应用的(de)前(qian)端前端全优页面加载速度非常(chang)快、对(dui)于用户的效编型网操作可以及时响应,那么(me)产品的程优用户体验将会极大地提升。下图显示了页面加载速度对于(yu)用户体验的化实化工影响。
下面来看看大型网站在Web页面优化最佳实践方案:

1. 避免坏请求

有时页面中的践大及最具集锦HTML或CSS会向服务器请求一个不存在(zai)的资源,比如图(tu)片或HTML文件,站W最佳这(zhe)会造成浏览器与服务器之间过多的(de)优化往返请求,类似于:

浏览器:“我需要这个图像。实践”
服务(wu)器:“我(wo)没有这个图像。高效b高”
浏览器:“你确定吗?前端前端全(quan)优这个文(wen)档说你有。”
服务(wu)器:“真的效编型网没(mei)有。”
如此一来,程优会降低页面的化(hua)实化工加(jia)载速度。因此,践大及最具(ju)集锦检查页面中的坏链接非常有必要,你可以(yi)通过 Google的PageSpeed工(gong)具 来检测,找到问题(ti)后,补充相应的资源文件(jian)或者修改资源的链接地址即可。
2. 避免CSS @import
使(shi)用(yong) @import方法引用CSS文(wen)件(jian)可(ke)以(yi)能会带来一些影响页面加载速度的问题,比如导(dao)致文件按顺序加载(一个加载完后才会加载(zai)另一个),而无法并行加载。
你可以使(shi)用(yong) CSS delivery工(gong)具 来检测页面代码中是否存(cun)在@import方法。比如,如果检测结(jie)果中存在
[css]view plaincopy
则建议你使用下面的代码来替代。
[html]view plaincopy
3. 避免使用(yong)document.write
在JavaScript中,可以使用 document.write在(zai)网页上显示内容或调用(yong)外部资(zi)源,而通过此方法,浏览器必须采取一些多余的步骤——下载资源、读取资源、运行JavaScript来了解需要做什么,调用(yong)其他资源时需要重新再执行一次(ci)这个过程。由于浏览器(qi)之前不知道要显示什么,所以会降低页面加载的速度。
要知道(dao),任何能够被document.write调用的资源,都可以通过HTML来调用,这(zhe)样速度会更快。检查你的页面(mian)代(dai)码,如果存在(zai)类似于下(xia)面的代码:
[js]view plaincopy
建(jian)议修改为:
[html]view plaincopy
4. 合并(bing)多个外部CSS文件
在网站中每使用一个CSS文件,都会让你的页面加载(zai)速度慢一点点。如果你有一个(ge)以上的CSS文件,你应该将它们合并为一个文件。
你可以通过 CSS delivery工具 来检测页面代码中的CSS文件,然后通过复制粘贴的方式将它们合并(bing)为一个。合并后(hou)记得修改页面中的引用代码,并删除旧的引用代码。
5. 合并多个外部JavaScript文件(jian)
大部分情况下,网站往往会包含若干个 JavaScript文件,但并不需要将这些文件都独立出来,其中有些是(shi)可以合并为一个文件的。
你可以通过 resource check工具 来检测页面中所引用的(de)JavaScript文件数,然后可(ke)以通(tong)过复制(zhi)粘贴的方式将多(duo)个文件(jian)合并为一个(ge)。
如果页面中有6个小图像,那么(me)浏览器在显示时会分别下载。你可以通过CSS sprites将这些图像合并成1个,可以减少页面加(jia)载所需的时间。
CSS sprites需要有两个步(bu)骤:整合图像、定位图像。比如你可以通过下面的代码来分别(bie)定位下面图像中的上下两(liang)部分(fen)。
[css]view plaincopy
7. 延迟JavaScript的加载
浏览器(qi)在执行JavaScript代码时会停止处理(li)页面,当页面(mian)中有很(hen)多JavaScript文件或代码要加(jia)载时,将导致严重的延迟。尽管可以(yi)使用defer、异步或将JavaScript代码放到页面(mian)底部来延迟JavaScript的加载,但这些都不是一个好的解决方案。
下面是Google的建议。
[js]view plaincopy
这段代码的意思是(shi)等待页面加载完成后,然后再加载外部的“defer.js”文件。下面是(shi)测试(shi)结果(guo)。
8. 启用压缩/ GZIP
使用gzip对HTML和CSS文件进行压缩,通常可以(yi)节省大约50%到70%的大小,这样加(jia)载(zai)页面只需要更(geng)少的带宽和更少的时间。
你(ni)可以通过这个 Gzip压缩工具 来检测页面是否已经经(jing)过Gzip压缩。
9. 启用Keep-Alive
HTTP协议采用“请求-应答”模式,当(dang)使用普通模式(非KeepAlive模式)时,每(mei)个请求/应答客户和服务器都要新建一个(ge)连(lian)接,完成之后立即断开连接(HTTP协议为(wei)无连接的协议);当使用 Keep-Alive模式(又称持久连接、连接重用)时(shi),Keep-Alive功能使客户端到服务器(qi)端的连(lian)接持续有效,当出现对服务(wu)器的后继请求时,Keep-Alive功能避免了建立或(huo)者重新建立连接。
在HTTP 1.0中Keep-Alive默认是关闭的,需要在HTTP头中加入(ru)“Connection: Keep-Alive”,才能启用Keep-Alive;在 HTTP1.1中Keep-Alive默认启用,加(jia)入“Connection: close”可(ke)关闭。目前大部分浏览器都是用HTTP 1.1协议,也就是说默认都会发起Keep-Alive的连接请求了(le),所以是否能完成一个(ge)完(wan)整的Keep- Alive连接就(jiu)看Web服务器的设置情况。
10. 将小的CSS和(he)JavaScript代码内嵌到HTML中
如果你的CSS代码比较小,可以将这部分代码放到HTML文件中,而不是一个外部CSS文件,这样(yang)可以减少页面加(jia)载所需的(de)文件数,从而加快页面的加载(zai)。同样,也可(ke)以将小的(de) JavaScript脚本代码内嵌到HTML文件中。
[html]view plaincopy
11. 利用浏览器缓存
在(zai)显示页面时,浏览器需要加载logo、CSS文件(jian)和其他一些资源。浏览器(qi)缓存所做的工作就是“记住”已经(jing)加载的(de)资源,让页面的加载速度更(geng)快。
12. 压缩CSS代码
不管你在页面(mian)中如何使用CSS,CSS文件都是越小越好,这(zhe)会帮助你提升网页的加(jia)载速度。你可以通过 Minify CSS工具 来压缩你的CSS代码。
压缩前(qian):
压缩后:
[css]view plaincopy
13. 尽量减少DNS查询次数
当浏览器与Web服务器(qi)建立连接(jie)时,它需要进行(xing)DNS解析,将域名解析为IP地址。然而,一旦客户端需要(yao)执行DNS lookup时,等待时(shi)间将会取决于域名服务器(qi)的(de)有效响应(ying)的速度。
虽然所有的ISP的DNS服务器(qi)都能缓存域名和IP地址映射表(biao),但(dan)如果缓存的DNS记录过(guo)期(qi)了而需要更新,则(ze)可能需要通过(guo)遍历多个DNS节点,有时候需要通过(guo)全球范围内来找到可信任的域名服务器(qi)。一旦域名服务器工作繁忙,请求解析时就需要排队,则进一步延迟等(deng)待时间。
因此,减少DNS的查询次数非常重要,页面加载时就尽量避免额外耗时。为了减少DNS查询次数,最好的解决方法就是在页面中减少不(bu)同的(de)域名请求的机会。
你可以通过 request checker工具 来检测页面中存在(zai)多少请求,然后进行优化。
14. 尽量减少(shao)重定(ding)向
有时为了特定需求,需要(yao)在网页中使用重定向。重定向(xiang)的(de)意思是,用户的原始请求(例如(ru)请求A)被重定向到其他的请求(例如请求B)。
但是这会造成网站性能和速度下降,因为(wei)浏览器访问网址是一连串的过程,如果访问(wen)到一半而(er)跳到新地址,就会重复发起(qi)一连串的过程,这将(jiang)浪费很多的时间。所以我们要尽量避免重定向,建议:
15. 优化样式表和脚本的顺序
Style标签和样式表调用代码应该放置在JavaScript代(dai)码的前面,这样可以使页面的加载速度加快。
[html]view plaincopy
16. 避免JavaScripts阻塞渲染
浏览器(qi)在遇到一个引入外部JS文件的(de)<script>标签时,会停下所有工作来下载并(bing)解(jie)析执行它,在这个过程中,页面渲染和用户交互完全被阻塞了。这(zhe)时(shi)页面加(jia)载就(jiu)会停止。
谷歌 建议 删除干(gan)扰页面中第一屏内容加载的JavaScript,第一屏是(shi)指(zhi)用户在屏幕中最初看到的页面,无论是桌面浏览器、手机,还是平板电脑。
17. 缩小原始图(tu)像
如果无需在页面中显示较大的图像,那么就建议将图像的实际(ji)大小缩小为显示的大小,这(zhe)样可(ke)以减少下载图像所(suo)需的时间。
18. 指定图像尺寸
当浏览器加载页面的HTML代码时,有时候(hou)需要在(zai)图片下载完(wan)成(cheng)前就对页面布局进行定位。如果HTML里的图片没有指定尺寸(宽和(he)高),或者代码描述的尺寸与实际图片的尺寸不符时,浏览器则要在图片下载完成后再“回溯”该图片并重新显示,这将消耗额外的时间)。
所以,最好为页面中的(de)每一张图片都指定尺寸,不管(guan)是在HTML里的<img>标签中,还是在CSS中。
1. 内(nei)容优化
2. 服务(wu)器优化
3. Cookie优化
4. CSS优化
5. JavaScript优化
6. 图像优化
7. 针对移动优化
1. Google PageSpeed
Google提供了(le) PageSpeed工具,这是一个浏览器插件,可以很好地应(ying)用上文中Google所提到的Web优化实践——帮助你轻松对(dui)网站的性能瓶颈进行(xing)分析,并为你提供优化建议。
2. 雅虎 YSlow
YSlow是雅虎推出的一款浏览器插件,可(ke)以帮助你对网站的页面进行分析,并为你提供一些优化建议,以(yi)提高网站的性(xing)能。
3. 其他分(fen)析优化工具
版权声明(ming):本文内容(rong)由互联网用户自发贡献,该文观点仅代表作者本人(ren)。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如(ru)发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1817475@qq.com 举报,一经查实,本站将立刻(ke)删除。
网站建设服务_辽宁咨询网站建设有哪些_1
网站建设服务_苏州模板网站建设价格_1网站建设服务_益阳网站制作哪家服务好_1网站建设服务_谁会建设网站
手机:
13910811300
电话:
010-52661970
传真:
010-82694569
网址:www.javn.cn
邮箱:13910811300@126.com
朝阳一部:朝阳区紫芳路九号院广顺园2号楼2605A
海淀二部:回龙观黄平路19号院泰华龙旗广场E座1212室(距西三旗桥2公里,8号线育新站海淀昌平交界)