前端优化总结
关于javascript
1.在整个页面渲染结束后下载js,执行js脚本。因为在一个脚本在下载的时候,浏览器干不了其它的事儿(串行了)。所以,把它扔到最后面去处理。对于一些功能性的脚本,可能实现起来有些两难。
2.减少DOM元素的数量和访问。对于DOM的操作是不可避免的,但是还是要尽量的避免使用 JavaScript输出页面布局,这应该是 CSS 做的事儿。
3.移除重复脚本。
关于Css
4.把 CSS 放到代码页上端。
这其实和用户访问期望有关。CSS 放到最顶部,浏览器能够有针对性的对 HTML 页面从顶到下进行解析和渲染。没有人喜欢等待,而浏览器已经考虑到了这一点。还有就是避免使用@import 指令,因为在IE中使用这个等同于把 link 标记写在 HTML 的底部。
5.避免 CSS 表达式。
个人认为通过 CSS 表达式能做到的事情,通过其它手段也同样能做到而且风险更小一些。不是非常需要,一般不建议使用expression,因为expression对浏览器资源要求比较高。
(在CSS中使用expression关键字,用来把CSS属性和Javas cript表达式关联起来。就是说CSS属性后面可以是一段Javascript表达式,CSS属性的值等于Javascript表达式计算的结果。)
6.从页面中剥离 JavaScript 与 CSS ,然后分别进行压缩。如果有多个css文件,建议合并成一个,减少HTTP的请求。
关于图片
7.使用 GIF 、JPG 还是 PNG 格式的图片? 我们要尽可能的使用 PNG 格式的图片,因为它与 GIF 相比,有更多的功能,更小的尺寸。
8.使用CSS样式对图片进行优化。简单的说就是"利用 CSS background 相关元素进行背景图绝对定位",把多次 HTTP 调
用变为一次调用。把多个背景图片揉成一个,减少 HTTP 调用,这是一个很好的思路。但一定要记住这个大图片不能太"重",如果大小超过 100 多K,那么就会把整个网站拖得很慢。
关于面向内容。
9.尽量减少iframe的使用数量。
10.避免重定向。比如访问百度:www.baidu.com与www.baidu.com/。后面带斜杠的,就能有效避免一次重定向。
11.使得 Ajax 可缓存
响应时间对 Ajax 来说是至关重要的,否则用户体验绝对好不到哪里去。提高响应时间的有效手段就是 Cache 。其它的一些优化规则对这一条也是有效的。
12. 对 AJAX 请求使用 GET 方法
XMLHttpRequest POST 请求需要两步,而 GET 只需要一步。但要注意的是在 IE 上 GET 最大能处理的 URL 长度是 2K。
补充:视觉设计者应该尽量考虑控制图片大小,推荐在 200K 以下。