【面试季二】前端性能优化
这是一个老生常谈的内容了,90%的面试里都会问到,在这里只是再简单的整理一遍,以加强记忆巩固。
一 减少Http请求:主要可以通过合并图片、Css、Js和页面延迟加载等方法减少请求次数;
二 减少repaint和reflow:主要是指要尽量减少页面的重新渲染和重新布局,这个实际工作中基本是不可避免的,就合理使用即可;
三 减少对DOM的操作:主要是指尽量减少对DOM的增删改查这一类的节点操作,尽量使用局部变量,这个在某些项目中也是不可避免的,所以要合理应对;
四 使用JSON进行数据交换:JSON是一种轻量级的数据格式,也是JS自带的,所以有很多优点;
五 使用CDN加速:这个是最近多数公司都在使用的,中文是内容分发网络,可以就近分配内容,可以增加一些访问速度;
六 CSS和JS文件都尽量使用外链样式,并且将JS文件放在body最外边,我一般在写的时候都是放在html的最外边,基本一个意思。主要原因是因为JS具有阻塞特性会影响其他内容的加载和渲染。(我平时都说JS是单进程语言,暂时未仔细研究单进程和阻塞特性是否是一个东西。。。)
七 压缩JS文件:我一般都是用在线压缩工具,最近面试被问到有没有用过那种可以一边编写一边压缩的工具。。。囧。。。如有知道的大牛,请告知一二;
八 压缩图片和合并图片:压缩图片我一般在切图的时候就会做了,在PS文件中存储切片时降低分辨率,选择适当的图片格式或是降低图片质量。不过自从retina屏出来以后我又开始纠结要不要这么做了,因为EXBoss用的是MacPro。。。这个各位大牛现在是怎么做的?用@2x.png这样来解决以外还有其他的吗?请指教!
以上总结来自http://www.cnblogs.com/Darren_code/archive/2011/12/31/property.html这里,在这里借鉴一下,因为人家总结的比我好嘛~我只是简化后搬过来方便自己记忆,如有不明确或是不详细的地方,请查看原文。