一.结构有待优化。
目前网站结构代码存在冗余现象,结构的语义化不强,在扩展方面表现出不足。
修改方案:
后继制作应该考虑使用语义化的标签,使结构语义化,增强扩展性能力,以求在良好好结构中适应不同的设计需求。还可减少冗余代码,优化结构。
二. 样式的调用。
目前使用 <link>方式调用样式与JS,由于是模块化工作,使得有些模块反复调用同一样式的情况出现,部分样式重调与覆盖率太高,增加了http请求数,加大了下载的时间,减慢浏览器解释的速度,并造成了流量的损失。
修改方案:
整合样式,把每个页面用到的样式整合到同一个文件中,并对该页面的样式进行优化,去掉注释、空格、换行等,并通过第三方压缩软件进行压缩,以得到发布时最小的样式文件。
注:当然这又涉及到了样式管理,样式版本管理与多人协作的问题。
三. 修饰图片的优化。
目前网站中大多修饰图片都没有经过有效的整合,导致加载速度过慢、请求数增多,影响到页面的响应时间。
修改方案:
1.建议设计搞用色控制在255色内。
2.修饰图片格式的选择——GIF、PNG-8、PNG-24、JPG等,按需求进行选择合适的图片类型以求降低图片字节。
3.对公用的修饰图片、使用频率较高的修饰图片运用Css Sprites技术——也就是把修饰的小图片合理的整合到一张规范大小的图片上,以求减少请求数与图片大小,加快页面响应时间。
4.对某些比较大的修饰图片如JPG可运用第三方软件的再压缩,以求在不损失效果的前提下得到最佳大小。
注:特别强调一下css sprites技术。
a.CSS Sprites技术能减少图片的请求数,把零散的小图片放到一起,运用background-position来改变背景图片的位置,前提是html元素事先定义好宽高,其实就像一个遮罩,移动背景就会看到不同的景象。应用该技术的同时会相应的增加开发时间与维护成本,如果修改频率过高不建议使用。
b.压缩工作的推荐:Image Optimizer
四.请求数过多
修饰图片,css,javascript,flash等这些都会增加http请求数,减少这些元素的数量能减少响应时间和服务器端开销。
修改方案:
把他们各自的能合并到一起的合并一下,优化结构。
五.客户端优化
1.IE的滤镜和CSS expressions少用,小心把浏览器搞挂,CUP 100%死机。
a.css expressions 是一个以动态的方式改变css的属性(非ie浏览器忽略)。自ie5就开始被支持,举个例子,用css expression可以让背景色每个小时轮换一次。
background-color: expression( (new Date()).getHours()%2 ? “#B8D4FF” : “#F08A00”);
expressions的问题在于它的计算频率绝对超出我们的想象,甚至当我们移动鼠标,都会引起页面的重绘!
b.滤镜是IE特有的属性,在其它浏览器比如火狐中并不起作用。过多的使用滤镜会导致吃内存的现象。
2. CSS放到head中,js能放到页面的结束标签body前面,能将页面尽早展示给用户。
a.把css放到文档头部会让网页加载得更快,让页面逐渐加载并同步渲染.
b.把脚本放到尽可能底部的地方(建议结束标签body前面),防止当脚本以下的内容被阻止加载——因为只有当下载完脚本以后才会下载脚本下面的内容,其外脚本因此引起的问题是阻止平行下载。
六.减少iframe的使用,避免CPU扛不住。
七.减少DOM个数,减低浏览器解析压力。
八.提高js的执行效率,确保脚本执行中无错误提示。
九.小图片的repeat背景会提高浏览器的CPU占用,尽量避免小图的repeat.(如果可以建议切个三四像素,而不是常见的一像素。)
十.合理的DOM排序,把重要的内容代码前置,优先加载。
十一.分域提高同时加载数,优化排队等待。
十二.避免404无效请求数, 避免无效链接,避免重定向
至此,前端需要对结构代码、图片、脚本、http协议、缓存、服务器等精准的学习和控制,以达到提供给用户最最基本的体验——访问速度的体验。

