美文网首页
JS渲染机制

JS渲染机制

作者: 王小滚 | 来源:发表于2018-10-03 11:19 被阅读0次

1. 什么是DOCTYPE及作用?

DTD是一系列的语法规则,用来定义XML或HTML的文件类型。浏览器会使用它来判断文档类型。

  1. <!Doctype>声明位于文档中的最前面,处于<html>标签之前。告知浏览器的解析器,用什么文档类型规范来解析这个文档。
  2. 严格模式的排版和js运作模式是以该浏览器支持的最高标准运行。
  3. 在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
  4. DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

2. 浏览器渲染过程

浏览器渲染过程
  1. html经过HTml Parser转化成dom tree,将css文件按照css解释器解析,顺序为:浏览器默认样式->自定义样式->页面内的样式。转化成style rules
  2. 转化后的dom树与样式规则结合形成了一个render tree
  3. render tree中不包含HTML的具体内容,也不知道这个dom树需要挂在页面的具体位置,通过layout指定元素具体的位置,宽,高,颜色在render tree呈现出来
  4. 浏览器通过gui开始画图,呈现内容
  5. 页面效果渲染在浏览器上

3. 重排reflow

定义:
DOM结构中各个元素都有自己的盒子模型,这些都需要浏览器根据各种样式来计算并根据计算结果将元素放到它该出现的位置,这个过程就是重排。
触发重排的动作:

  1. 增加 删除 修改dom元素
  2. 移动dom元素的时候
  3. 修改css样式的时候
  4. resize窗口的时候
  5. 修改网页的默认字体(所有dom元素重排)

4. 重绘repaint

定义:浏览器把确定好的元素按照各自的特性绘制了一遍。
触发repaint:
呈现内容发生变化

5.如何避免重排与减少repaint频率?

  1. 分离读写操作
  2. 样式集中改变,可以添加一个类,样式都在类中改变
  3. 可以使用absolute脱离文档流。
  4. 使用display:none ,不使用 visibility,也不要改变 它的 z-index
  5. 能用css3实现的就用css3实现。

相关文章

  • JS渲染机制

    1. 什么是DOCTYPE及作用? DTD是一系列的语法规则,用来定义XML或HTML的文件类型。浏览器会使用它来...

  • 前端基础知识

    渲染机制 css==cssom + html==dom tree=render tree 遇到js时候修改...

  • next.js 的服务端渲染机制(二)

    本文是next.js 的服务端渲染机制(一)的后续 server/render.js这个模块是服务端渲染的核心模块...

  • Js/1 堆栈内存/变量提升和闭包

    1# Js数据类型渲染机制和堆栈内存 Js 文件的放置位置 head 头部 body 底部(推荐) Js 的 ...

  • CSS和JS在网页中的放置顺序

    JS、CSS渲染机制解析html构建DOM树解析CSS构建CSSOM树把DOM和CSSOM组合成渲染树(Rende...

  • JS基础(一)

    css和js的放置位置、白屏和FOUC、async和defer、简述网页的渲染机制、 一、CSS和JS在网页中的放...

  • Three.js 透明物体不能正常显示/渲染顺序的控制问题

    本篇文章主要讨论Three.js中的渲染机制,以及在部分场景中透明的物体渲染不正确,渲染顺序错误等问题。国内好像很...

  • CSS学习总结

    浏览器的渲染机制 解析HTML字符串构建DOM树 解析CSS样式,产生CSSOM树 执行js脚本文件,js加载完成...

  • 小程序WXS脚本解析

    wxs脚本存在的意义是因为小程序的渲染机制决定的。小程序的webview 与 js逻辑渲染的分离导致小程序在某些场...

  • 浏览器的渲染机制

    在网页中css、js的放置顺序 将css放在head中,将js放在body的尾部中 简述浏览器的渲染机制 解析HT...

网友评论

      本文标题:JS渲染机制

      本文链接:https://www.haomeiwen.com/subject/obwaoftx.html