网站的性能优化:
-
CSS放在head中,减少repaint和reflow,使用link在页面导入Style 样式,避免用import引用样式;import是在html加载完才引入样式,会影响页面加载速度;两性能分析介绍:http://www.stevesouders.com/blog/2009/04/09/dont-use-import/ http://www.qianduan.net/high-performance-web-site-do-not-use-import/
- CSS 缩写(color,上下左右合并等)
- CSS 的声明(页面上的 class 在全局范围内来讲是唯一的,用唯一的 Class 名称来定位一个节点往往比组合定位更加快捷。样式与元素的分离,两者独立维护);CSS 选择器(id选择器效率最高,其他子选择器,匹配都会减慢速度)(不要直接用元素和太泛的选择器);
- css的style样式单词简写优化(不要用太长的名称);
- 标点符号优化(删除空格,删除换行,去掉选择器最后的一个分号??)
- css重用优化 (共用代码块)
- 注意利用css的继承机制,指的是子类会引用父类的样式;
- 抽离,拆分css,不在一个页面加载所有的css文件
- 使用雅虎YUI压缩js和css;(js压缩网站:http://javascriptcompressor.com/)
- 使用缓存机制缓存图片、css和javascript,并合并css中引用的图片,合并js文件。(目的是减少http请求);
- 尽量将javascript放在页脚,避免放在页头header,影响速度;
- 对图片进行压缩;最好用png8;,尽量使用gif格式图片;首页不要用太大的FLASH文件和视频文件;
- 避免使用网页重定向;
- 不要用css表达式express:(CSS规则并不是只运行一次,为了确保有效性,CSS表达式会进行频繁的求值,当改变窗口大小,滚动页面甚至移动鼠标都会触发表达式进行求值,如此频繁的求值以至于浏览器的性能收到严重的影响。)
-
避免适用通配符或隐式通配符
-
避免适用通配符或隐式通配符(*)
- 在最下方单独做一个Table或者div来放置计数器。这样,在计数器不能访问的时候,你的网站速度也不会受到丝毫影响。不要用
-
服务器开启gzip模块(tomcat)
gzip压缩是非常流行的一种数据压缩格式,一般网站启用gzip后,压缩率都会有70%-80%的提升,效果是立竿见影的。
部分虚拟主机默认有gzip功能,但大部分没有,独立主机、VPS一般可以设置,开启gzip会加重服务器负担,而且要修改服务器配置,强烈建议大家开启gzip,如果不清楚可以问问所在空间商,让他们帮忙开启。
-
除去空白,注释,和无用的标签;
-
reflow:当DOM元素出现隐藏/显示、尺寸变化、位置变化的时候都会让浏览器重新渲染页面,之前渲染工作白费
repaint:当元素的背景颜色、边框颜色不引起reflow的变化是会让浏览器重新渲染该元素。貌似还可以接受,但如果我们在开始就定义好了,不让浏览器重复工作就更好了。
把 Stylesheets 放在 HTML 页面头部:
对于 @import 和 <link> 两种加载外部 CSS 文件的方式:@import 就相当于是把 <link> 标签放在页面的底部,所以从优化性能的角度看,应该尽量避免使用 @import 命令避免使用 CSS Expressions:
CSS Expression 案例
Background-color: expression( (new Date()).getHours()%2 ? "#B8D4FF" : "#F08A00" )
Expression 只有 IE 支持,而且他的执行比大多数人想象的要频繁的多。不仅页面渲染和改变大小 (resize) 时会执行,页面滚动 (scroll) 时也会执行,甚至连鼠标在页面上滑动时都会执行。在 expression 里面加上一个计数器就会知道,expression 的执行上相当频繁的。鼠标的滚动很容易就会使 expression 的执行次数超过 10000。
避免使用 Filter:
IE 特有的 AlphaImageLoader filter 是为了解决 IE6 及以前版本不支持半透明的 PNG 图片而存在的。但是浏览器在下载 filter 里面的图片时会“冻结”浏览器,停止渲染页面。同时 filter 也会增大内存消耗。最不能忍受的是 filter 样式在每个页面元素(使用到该 filter 样式)渲染时都会被浏览器分析一次,而不是像一般的背景图片渲染模式:使用过该背景图片的所有元素都是被浏览器一次性渲染的。
针对这种情况,最好的解决办法就是使用 PNG8。
CSS 缩写:
CSS 缩写,用极少的代码定义一系列样式属性,优化、合并、简写、极大程度的缩减代码量,减少css文件的占用字节,加快网页下载速度和网页加载打开速度,以达到提高性能的目的。
Color 缩写的方式,一般参照两个重复的进行一次缩写
list-style-type: square; list-style-position: inside; List-style-image: url(image.gif) ----->> list-style: square inside url(image.gif)
Font-style: italic; Font-variant: small-caps; Font-weight: bold; Font-size: 1em; Line-height: 140%; Font-family: sans-serif; ----->> font: italic small-caps bold 1em 140% sans-serief
#000000 ------>> #000 #336699 ------>> #369
在IIS上启用Gzip压缩(HTTP压缩) : http://www.cnblogs.com/zhangziqiu/archive/2009/05/17/gzip.html
apache启用gzip压缩方法:http://www.cnblogs.com/linzhenjie/archive/2013/03/05/2943635.html
Nginx Gzip 压缩配置:http://www.cnblogs.com/zfying/archive/2012/07/07/2580876.html
css sprites : http://www.cnblogs.com/dolphinX/p/3348460.html
浏览器的工作原理:新式网络浏览器幕后揭秘:http://www.html5rocks.com/zh/tutorials/internals/howbrowserswork/
http://kb.cnblogs.com/page/129756/
关于CSS reset的思考:http://www.cnblogs.com/dolphinX/p/3509515.html
回流与重绘:CSS性能让JavaScript变慢?:http://www.php100.com/html/webkaifa/DIV_CSS/2011/0922/9069.html
前端面试内容:http://developer.51cto.com/art/201507/486486.htm