码迷,mamicode.com
首页 > 其他好文 > 详细

性能优化

时间:2015-05-31 13:50:49      阅读:85      评论:0      收藏:0      [点我收藏+]

标签:

 随着学习的深入,我们开始对Web前端这个职业的了解越来越多,以前只知道上网,看到五花八门的页面,各种炫酷的效果,却不知道这些

 

炫酷的页面和效果是怎样做出来的,学习了三个月的前端,知道了很多效果和页面的制作,但还远远不够.课堂上老师提出的问题,我们不能快

 

速并正确的说出答案,这起到了很好的警醒作用,让我们更加的努力,不能因为能做两个页面了就沾沾自喜。

    优化性能:分为前端和后端的优化,其中各有不同之处。

         前端:一.减少Http的请求

                   1 当一个网页中有很多图片,我们可以将所有的图片合并成一张图片,达到优化的效果。

                   2 一个网页如果要引入几个js文件或者几个CSS文件时,我们可以将所有的JS或者CSS文件合并成一个文件,将其压缩,让后                     引入网页,可以达到优化的目的。

                   3 多使用字体图标。

                   4 减少使用flash文件,可用CSS动画代替。

                   5 使用延迟加载

               二.http缓存:缓存太多也会影响浏览器的加载速度。

                   1 http 1.0

                            Expires:缓存时间

                   2 http 1.1

                                Cache-Control:max-age=         缓存时间 ;例:Cache-Control:max-age=3600(以秒为单位)缓存时间为1小时;

                                               no-cache 无缓存

               三.代码位置优化:CSS代码放在顶部,JS代码在底部

               四.避免使用CSS表达式。

               五.尽量使用外部样式表和外部JS.

               六.代码和页面的压缩

                   1.JS代码的压缩

                   2.CSS代码的压缩

                   3.Gzip压缩

               七.CSS代码优化

                   1.避免使用@import导入CSS

                   2.避免使用Filter(滤镜)

                   3.将CSS能缩写的用缩写

                            颜色值:例#000000,写成#000,#aabbcc写成#abc

                   4.CSS选择器的优化

                            a.匹配的规则越少越好。

                            b.减少使用属性选择器.例:input[button];

                            C.减少使用后代选择器。浏览器从右往左收缩选择器;

                   5.多利用CSS的继承属性:例font、color等

               八.JS代码优化

                   1.使用多线程

                            a.使用定时器setTimeout、setInterval,异步。

                            b.使用Webwork技术(对浏览器支持不够好)。

                            c.使用Google开发的插件Gears(采用webwork技术,解决兼容性)。

                   2.内存的管理

                            a.使用delete删除对象的属性(只能删对象,不能删变量等)。

                            b.从dom节点中删除不必要的节点,用removeChild删除。

                   3.DOM优化

                            a.添加节点要使用appendChild或使用JQuery的append方法,这样不会影响其他节点。

                            b.批量操作DOM

                                     b1.使用innerHTML开销小,速度快,同时让内存更加安全。

                                   b2.如果循环增加节点,应该采用临时变量进行存放,再一次性使用innerHTML添加。

                            c.删除DOM节点

                             C1.删除节点前一定要先删除事件再删除节点,否则节点所占的内存不会释放。

            D.为节点添加事件

                                      D1.可以尽可能为父元素注册事件,由于浏览器有事件冒泡行为,因此就不需要为每个子元素添加事件.引                                        用变量。        

                 4.图片的优化

                            a.减少图片的数量。

                            b.有些图片像素高。降低图像质量。

                            c.使用恰当的格式:jpg、gif、png。

                   5.图片Base64编码:将图片用Base64转成代码,数据头必须为:data:image/png(gif等);base64,

                   6.回流和重绘

                            a.影响了周围的框架的CSS样式改动会回流并且重绘。不影响周围框架的CSS改动不会回流但会重绘

                            b.可以通过改class来代替直接改变CSS属性内容,起到减少回流次数的作用。

         后台:(了解)

  1. 负载均衡,服务器的大小,可用多台服务器,进行分流处理。
  2. CDN:自动计算到每个节点的时间,选择最快的路径发送请求。
  3. 反向代理:访问需要“FQ”的网站时,可以选择代理服务器。(速度更快,效率更高)

工具:(进行代码的压缩、合并等功能)

  1. grunt js(4000+的插件,不断有人编写提供插件)
  2. FIS(百度)。

性能优化

标签:

原文地址:http://www.cnblogs.com/z5206808/p/4541770.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!