深究JavaScript前端,数据库学习Web前端之路

DOM渲染机制与常见性能优化

2017-01-22  本文已影响1872人  唐紫依

参考资料

零、前言

本人垃圾,毁人无数。之前在 JavaScript客户端开篇 一文提及JavaScript客户端的时间线,本篇将做进一步详细的叙述。主要包括渲染的路径,以及渲染性能,并介绍一些常见的渲染优化方法,及其他前端相关优化要点。

一、主要渲染原理

1.0 前情提要

时间线

1.1 构建对象模型

浏览器处理过程 CSS 对象模型 CSSOM 转换过程

1.2 渲染树构建、布局和绘制

Render Tree

1.3 CSS/JS阻塞

// demo 1
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link href="style.css" rel="stylesheet">
  </head>
  <body>
    <p>Hello <span>web performance</span> students!</p>
    <div>![](awesome-photo.jpg)</div>
    <script src="app.js"></script>
  </body>
</html>
demo 1 执行流程
// demo 2
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link href="style.css" rel="stylesheet">
  </head>
  <body>
    <p>Hello <span>web performance</span> students!</p>
    <div>![](awesome-photo.jpg)</div>
    <script src="app.js" async></script>
  </body>
</html>
demo 2 执行流程
// demo 3
<html>
  <head>
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <link href="style.css" rel="stylesheet" media="print">
  </head>
  <body>
    <p>Hello <span>web performance</span> students!</p>
    <div>![](awesome-photo.jpg)</div>
    <script src="app.js" async></script>
  </body>
</html>
demo 3 执行流程

1.4 通过异步编程减少关键路径阻塞

1.5 前端自动化打包的优化方式

二、性能优化

2.0 前情提要

2.1 加载优化(最耗时)

2.2 脚本执行优化

2.3 CSS优化

2.4 JavaScript执行优化

2.5 渲染优化

END:初步整理,望各位留下评论共同探讨。不胜感激!

上一篇下一篇

猜你喜欢

热点阅读