前端页面优化总结
网页分析工具:yslow插件
Yahoo发布了一款基于FireFox的插件,名叫YSlow,这个插件可以分析网站的页面,并告诉你为了提高网站性能,如何基于某些规则而进行优化。
安装YSlow前,需要在FireFox先安装另外一个流行的WEB开发工具Firebug,安装完YSlow后,就可以利用YSlow来分析网页的HTML代码以及JavaScript代码,并对其进行优化。
YSlow可以分析任何网站,并为每一个规则产生一个整体报告,如果页面可以进行优化,则YSlow会列出具体的修改意
Yslow可以提供对js,css的优化与建议,
HttpWatch工具:能查看请求页面的响应时间
HttpWatch是强大的网页数据分析工具.集成在InternetExplorer工具栏.包括网页摘要.Cookies管理.缓存管理.消息头发送/接受.字符查询.POST数据和目录管理功能.报告输出.HttpWatch是一款能够收集并显示页页深层信息的软件
网页Gzip压缩:
1.开GZIP有什么好处?
答:Gzip开启以后会将输出到用户浏览器的数据进行压缩的处理,这样就会减小通过网络传输的数据量,提高浏览的速度。
推荐3个GZIP在线检测的网站:
老外的:
http://www.seoconsultants.com/tools/compression
http://www.whatsmyip.org/http_compression
国产的:http://gzip.iamzz.com/
前端总结:
首先从一次完整的的请求说起:(以此为例get,www,baidu.com)
1,webbrower发出request,
2,然后解析www.baidu.com为ip,找到ip的服务器,
3,服务器处理请求资源并返回请求的内容,
4,browser接受请求内容过程,(返回内容是按顺序读取的)
4.1遇到外联css,就会并发去读取css内容(),
4.2遇到图片时,回去并发读取图片,目前浏览器的并发数为2,
4.3遇到js时则会阻塞其他请求。
4.4加载完css后,browse开始渲染页面,
4.5直到加载完页面中的文本资源,这时dom的结构已经确定,会出发document.ready方法
4.6browse继续加载图片和js,完成后。页面就全部加载完成,这时会出发window.onload()方法
来分析一下里面具体的时间开销:
1,从1--4.4用户才开始看到页面上有内容,在这以前页面就是空白的
2,解析域名也是有一定时间开销的,如果是大机房的可以通过路由配置dns缓存,依赖于外部机房环境,可控性比较小。
3,这是服务器处理的时间,优化程序代码可以减少这里的时间
4,
4.1浏览器在接收完css之前,一般是不去渲染dom的,以避免无所谓的刷新和闪烁。所以直到4.4用户才真正在页面上看到内容。
4.2浏览器的单域名并发访问数为2,多域名下并发数没限制,可以通过定义域名别名改善
4.3浏览器加载js时会阻塞其他请求,直到加载完成。改善的话可以把js放到页面下面去加载。
从上面的流程可以分析出以下建议:
1,减少连接数(原因:并发限制,dns开销)
2,将css放到head中。(1,首先这符合w3c规范,2,应为css加载完后,遇到dom对象时就会直接显示,可以更快的显示页面。)
3,将js放到页面底部,(加载js时会阻塞其他请求,这段时间页面没有反映,如果js中没有write的话应该放到底部,页面渲染完后再加载js)
4,减少下载内容(网络是有速度限制的,内容越少当然加载越快)
针对上面4条建议给出具体做法:
1,使用csssprite将小图片合并,合并css、js。使用浏览器缓存:cache-control、expires。不使用etag
2、3不用说了,上面已经解释清楚了。
4,采用gzip压缩,可以使用jsmin将js精简,使用工具将css,html精简,尽可能缩减图片。
按照性能黄金法则说明:文本内容只占所有时间的10%-20%,这样做以后至少能将时间缩小40%-50%。能明显改善用户体验。
这只是一些建议参考,具体的需要你针对自己的网站进行分析,分析工具可以使用firedebug,yslow,(这两个可以集成)
yslow会直接给出你建议。