前端优化
前言 基本HTML加载,需要 20ms 左右 Nginx配置,关闭 keepalive、etag、gzip、if_modified_since 协议:HTTP/1.1 浏览器:Chrome 减少HTTP请求 加载未合并外部css,需要 35ms 左右 加载合并外部css,需要 25ms 左右 两个合并后的css,加载减少了10ms,如果将页面所有的css、js、图片(CSS sprites )合并,减少的时间将很可观。 DOM以及CSS 上图是浏览器解析HTML和渲染树之间的流程。浏览器在获取到HTML页面后开始解析页面,解析到head标签后,发现外部CSS,会异步发出请求,CSS获取后,解析CSS。 HTML解析后生成DOM Tree,CSS解析后生成CSSOM Tree, 两者结合开始渲染树。 1、首屏的页面要快速的渲染出来,CSS最好放在页面头部。同时有多个css文件的时候,也要将基本样式放在其他样式之前加载(边获取边渲染)。 2、HTML以及CSS的元素层级要尽量少,加快页面渲染。 3、对于首页,可以将基本样式内联放在头部。(快速渲染,灵活应用) JS 上图是浏览器解析流程,蓝色是样式解析,黄色是JS脚本执行,顺序执行。JS脚本执行会阻塞样式或DOM解析 1、JS脚本放在页面下面,防止阻塞页面渲染。 2、不要在JS里执行长时间的程序。 3、减少JS对DOM的操作