九、网站前端优化 – IMG

9.1、可以优化的图片

图片总共可以分为两类,一个是CSS IMAGES,另一个是产品图片。

9.2、CSS IMAGES

CSS图片现在采用的方式是图片合并的方式,这样可以减少HTTP请求;初期的规划是网站最通用的图片合并到一张图片上,具体某张页面自己用到的,针对每张页面再合并一张图片,即一张页面除去插件里面带过来的背景图片外,最理想的情况是保留两张背景图。但是现在情况很不如意,主要原因有以下几点:

  1. 页面改动太频繁,很多原先合并好的图片一改再改后,会保留很多副本
  2. 现在CSS的模块化,CSS模块化后,一张新的页面有原先定义好的样式后,我们就会直接引用,这样的话就不会关系具体他的CSSIMAGES;如果不同的模块来自不同的页面,那么机会导致页面的背景图过多并且过大。

9.3、产品图片

产品图有两种呈现方式,一个就是单独展示在页面中的,这样的图片处理方式是异步,就用lazyload,这个的处理方式相对简单。

另外一张是幻灯片,这种图片用lazyload不能达到异步的效果,因为幻灯片我们首次只会看到第一张图片,这样的话就得要改幻灯片,这个根据不同的幻灯而定吧。

十、网站前端优化 – DOM

10.1、DOM优化方法

目前对DOM优化采用的方法是不渲染,即将对SEO不重要的内容用textarea或者script包裹,这样的话他们在渲染时就会被当做字符串而不会解析成节点。

十一、网站前端优化 – JS

JS是除图片外,对前端性能影响最大的一个方面,也是最难优化的。总体来说,JS对性能有影响体现在两个阶段,一个是JS的下载阶段,一个是执行阶段。

JS同步时,下载和执行阶段解析器都会暂停,等待JS下载和执行;而jS异步时,JS下载不会暂停解析器,因此不会阻塞页面,但是执行时,仍然会暂停解析器。所以,对JS处理方式一般是异步并且放在页面底部。这样可以对页面的影响降到最小。

JS另一个难点就是页面中的JS代码的逻辑处理,可以用dynaTrace AJAX跟踪查看。

十二、网站前端优化 – 重绘&回流

当呈现树中的一部分(或全部)因为元素的规模尺寸,布局,隐藏等改变而需要重新构建。这就称为回流(其实我觉得叫重新布局更简单明了些)。每个页面至少需要一次回流,就是在页面第一次加载的时候。

当呈现树中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color。则就叫称为重绘。

这块内容是和浏览器渲染方式息息相关的,有兴趣的童靴可以在网站多找些资料;这里只介绍些平时我们可能使用的一些会造成重绘&回流的方法,及改进意见

  1. 不要1个1个改变元素的样式属性,最好直接改变className,但className是预先定义好的样式,不是动态的,如果你要动态改变一些样式,则使用cssText来改变
  2. 让要操作的元素进行"离线处理",处理完后一起更新,这里所谓的"离线处理"即让元素不存在呈现树中
  3. 不要经常访问会引起浏览器flush队列的属性,如果你确实要访问,就先读取到变量中进行缓存,以后用的时候直接读取变量就可以了
  4. 考虑你的操作会影响到呈现树中的多少节点以及影响的方式,影响越多,花费肯定就越多

网站前端优化 -saveForSelf的更多相关文章

  1. 网站前端优化技术 BigPipe分块处理技术

    前端优化已经到极致了么?业务还在为看到不停的而揪心么?还在为2秒率不达标苦恼么? 好吧我知道答案,大家一如既往的烦恼中... 那么接下来我们看看,facebook,淘宝,人人网,一淘都是怎么做前端优化 ...

  2. 关于大型网站技术演进的思考(二十一)--网站静态化处理—web前端优化—下【终篇】(13)

    本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部,不过该企业把这个事业部里的人事成本,系统运维成本特别 ...

  3. 关于大型网站技术演进的思考(二十)--网站静态化处理—web前端优化—中(12)

    Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原理,很有可能掉进这些陷阱里,最终没有达到最佳 ...

  4. 关于大型网站技术演进的思考(十九)--网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  5. 网站静态化处理—web前端优化—下【终篇】(13)

    网站静态化处理—web前端优化—下[终篇](13) 本篇继续web前端优化的讨论,开始我先讲个我所知道的一个故事,有家大型的企业顺应时代发展的潮流开始投身于互联网行业了,它们为此专门设立了一个事业部, ...

  6. 网站静态化处理—web前端优化—中(12)

    网站静态化处理—web前端优化—中(12) Web前端很多优化原则都是从如何提升网络通讯效率的角度提出的,但是这些原则使用的时候还是有很多陷阱在里面,如果我们不能深入理解这些优化原则背后所隐藏的技术原 ...

  7. 网站静态化处理—web前端优化—上

    网站静态化处理—web前端优化—上(11) 网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是 ...

  8. 网站静态化处理—web前端优化—上(11)

    网站静态化处理这个系列马上就要结束了,今天我要讲讲本系列最后一个重要的主题web前端优化.在开始谈论本主题之前,我想问大家一个问题,网站静态化处理技术到底是应该归属于web服务端的技术范畴还是应该归属 ...

  9. 网站前端性能优化之javascript和css

    之前看过Yahoo团队写的一篇关于网站性能优化的文章,文章是2010年左右写的,虽然有点老,但是很多方面还是很有借鉴意义的.关于css的性能优化,他提到了如下几点: CSS性能优化 1.把样式表置于顶 ...

随机推荐

  1. 49. Sort Letters by Case

    最后更新 一刷 还是Partition,只不过这次是按照大小写字母来. public class Solution { public void sortLetters(char[] chars) { ...

  2. 超详细单机版搭建hadoop环境图文解析

    前言: 年前,在老大的号召下,我们纠集了一帮人搞起了hadoop,并为其取了个响亮的口号“云在手,跟我走”.大家几乎从零开始,中途不知遇到多少问题,但终 于在回家之前搭起了一个拥有12台服务器的集群, ...

  3. HDU 2517 棋盘分割

    题意:n刀切割棋盘 下面是8*8的棋盘,每个数字代表棋盘对应点的权值,问切割n刀后,每一块的和  的均方差最小是多少 均方差的公式需要先化简: 由上式得,均方差最小 显然是要 Xi^2 最小 d[k] ...

  4. stl之deque双端队列容器

    deque与vector很相似,不仅能够在尾部插入和删除元素,还能够在头部插入和删除. 只是当考虑到容器元素的内存分配策略和操作性能时.deque相对vector较为有优势. 头文件 #include ...

  5. [AngularJS + Webpack] Using Webpack for angularjs

    1. Install webpack & angular: npm install webpack angular 2. Create webpack.config.js file: modu ...

  6. 四种方案解决ScrollView嵌套ListView问题

    在工作中,曾多次碰到ScrollView嵌套ListView的问题,网上的解决方法有很多种,但是杂而不全.我试过很多种方法,它们各有利弊. 在这里我将会从使用ScrollView嵌套ListView结 ...

  7. css 常见兼容性问题及解决方案

    css 兼容问题一直是困扰前端开发人员的大难题,提到兼容性立马想到了万恶的ie6,说多了都是泪,还是整理一些常见的兼容性问题以及解决的方案吧. 一. 浮动元素双边距. ①条件:ie6下,如果给元素设置 ...

  8. careercup-树与图 4.2

    4.2 给定有向图,设计一个算法,找出两个结点之间是否存在一条路径. 解答 根据题意,给定一个有向图和起点终点,判断从起点开始,是否存在一条路径可以到达终点. 考查的就是图的遍历,从起点开始遍历该图, ...

  9. INSTALL_FAILED_VERSION_DOWNGRADE报错

    error: INSTALL_FAILED_VERSION_DOWNGRADE 原因:模拟器或者实际的device中已经安装了同名的app,且本次的版本并不高 解决:在模拟器中卸载此同名应用,之后再运 ...

  10. hdu1250(Java)大数相加的问题

    Hat's Fibonacci Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Tota ...