`

css和html中的dom节点都是怎么被处理的

阅读更多

今天看到一篇文章浏览器渲染原理  很不错

为什么我会去注意这篇东西呢!因为我昨天在修复朋友们提交的一个小bug后,发现自己的前端有点糟糕,可能是以前我对于前端的处理方式都是交给我的朋友的。原本在我的前端理解中,对于css的控制,我一直希望使用id和css,原因是我觉得够简单和直接,没有复杂的递归关系,不需要一层一层向下看,但是呢这要求很高的文档规范和命名规则,否则名字实在太多了。


通过阅读上述文章,我知道了如下东西:

1,html 会被解析成dom结构

2,css也会被解析成一个dom 这里的dom其实我就理解成一个树图,数据结构里面的树图

3,当css被赋予在html上时,他们两者会被关联

4,浏览器在处理css的变化时有reflow/repaint

5,1)不要一条一条地修改DOM的样式。与其这样,还不如预先定义好css的class,然后修改DOM的className。 这条很棒

 

6,2)把DOM离线后修改。如:

  • 使用documentFragment 对象在内存里操作DOM
  • 先把DOM给display:none(有一次reflow),然后你想怎么改就怎么改。比如修改100次,然后再把他显示出来。
  • clone一个DOM结点到内存里,然后想怎么改就怎么改,改完后,和在线的那个的交换一下。
  • 对于这的理解,我认为就是在js中把dom,赋值给一个变量,然后对这个变量做操作,最后在赋值给页面的html元素,而不是直接在获取。
  • 举例:var a=$("#id").val();然后你需要对这个a做样式的改动,这时a的变化不会和html有关联,但是如果你直接$("#id").css('')这里你css了很多,可能就会造成浏览器一直在reflow或者repaint

7,3)不要把DOM结点的属性值放在一个循环里当成循环里的变量。不然这会导致大量地读写这个结点的属性。

这条我的理解是 for循环中如果你在不停的获取$("#id").val()是一个不可取的行为

4)尽可能的修改层级比较低的DOM。当然,改变层级比较底的DOM有可能会造成大面积的reflow,但是也可能影响范围很小。

这里的意思我这么理解,你修改的子节点越接近树梢可能影响的范围越小,但是如果你n个子节点用的是同一个css的id或者class可能就是要大面积reflow了。

5)为动画的HTML元件使用fixed或abslout的position,那么修改他们的CSS是不会reflow的。

fixed和abstlout的定位就是匹配尺寸的和绝对位置的,相对于relative和float:left来说,我理解是前两者的z-index比一般的div+1层,所以才会不影响周边的div而独立的存在。其他几个布局模式,都是需要牵制于周围的div的,也就会引发reflow了

6)千万不要使用table布局。因为可能很小的一个小改动会造成整个table的重新布局。

 

再相信的信息去看那篇帖子吧!我后续把他提到的文章看下。做个小翻译。

 

 

分享到:
评论

相关推荐

    domtoimage使用HTML5canvas从DOM节点生成图像

    "domtoimage使用HTML5canvas从DOM节点生成图像" 这个标题提到了一个名为 "domtoimage" 的工具,它利用HTML5的Canvas API将DOM(文档对象模型)中的节点转换为图像。这个过程通常用于网页截图或者在网页中保存和分享...

    第06章 DOM节点操作(上)

    在本章“第06章 DOM节点操作(上)”中,我们将深入探讨Document Object Model(DOM)在JavaScript中的应用,以及如何通过DOM接口来操纵HTML或XML文档的结构、内容和样式。DOM是一种标准,它允许编程语言与网页内容...

    使用Jsoup库解析HTML、XML或URL链接中的DOM节点

    **Jsoup库解析HTML、XML或URL链接中的DOM节点** Jsoup是一款强大的Java库,它设计用于处理实际世界中的HTML,使得开发者可以方便地提取和操作数据。在Web开发中,有时我们需要从网页中获取特定信息,比如文章内容、...

    第06章 DOM节点操作(下)

    总结,DOM节点操作是Web开发中不可或缺的一部分,熟练掌握这些方法和概念将使你能够有效地操控页面元素,实现丰富的交互效果。无论是添加、删除还是修改元素,或者处理事件,都需要对DOM有深入的理解。通过不断地...

    CSS中文手册+DOM文档对象中文手册+DHTML手册

    2. DOM(Document Object Model):理解DOM结构,如何通过JavaScript操作DOM节点,如添加、删除、修改元素。 3. 事件处理:绑定和解绑事件,以及常见的页面和元素事件,如click、mouseover等。 4. 动态内容更新:...

    最全Web开发资料大集合:ajax实战 CSS DOM HTML xml手册 JS宝典

    DOM是HTML和XML文档的编程接口,它将网页结构表示为一个节点树,允许开发者通过JavaScript或其它语言操纵网页内容、结构和样式。例如,你可以添加、删除或修改元素,实现动态交互效果。 **CSS(Cascading Style ...

    树型结构(javascript+dom+xml+css)

    在树型结构中,每个节点都可以被视为一个DOM对象,通过JavaScript我们可以对这些对象进行操作,如查找、修改、添加或删除。 3. XML(Extensible Markup Language):这是一种用于存储和传输结构化数据的标准格式。...

    html,js,jquery,css,html dom参考手册

    HTML DOM(Document Object Model)是HTML和XML文档的编程接口,它将文档表示为树形结构,每个元素都是一个节点。HTML DOM参考手册解释了如何通过JavaScript访问和修改这个结构,例如,添加、删除或改变元素、属性和...

    CSS和DOM属性用法速查手册.doc

    还有许多其他CSS属性和DOM属性,如`display`(控制元素的可见性),`margin`和`padding`(控制元素边距和内填充),`fontSize`(设置字体大小),以及`value`(获取或设置表单元素的值)等,都是开发者日常工作中不...

    一些xml开发示例,包括DTD,CSs,xslt,dom sax 等。都可以运行

    本文将深入探讨XML开发中的四个关键概念:DTD(Document Type Definition)、CSS(Cascading Style Sheets)、XSLT(Extensible Stylesheet Language Transformations)以及DOM和SAX解析器。 1. DTD(Document Type...

    JQ CSS 和 DOM

    标题中的“JQ CSS 和 DOM”指的是JavaScript库jQuery(简称JQ)、层叠样式表(CSS)以及文档对象模型(DOM)这三种在Web开发中至关重要的技术。它们共同构成了前端开发的基础,使得开发者能够创建交互式、动态且美观...

    web 前端教程,js,html,css,ajax,xml,dom 详细介绍

    本教程将深入探讨几个核心的前端技术:JavaScript(JS)、HTML、CSS、AJAX、XML以及DOM,这些都是构建高效、动态和交互式Web界面的基础。 1. **HTML(超文本标记语言)**: HTML是网页内容的基础结构,它定义了...

    JavaScript,CSS,DHTML,DOM帮助文档(四个文件)

    DOM文档则会深入解析DOM结构,如何使用JavaScript操作DOM节点。 学习这些技术,可以帮助开发者更好地理解和创建动态、响应式的网页应用。JavaScript提供了动态编程的能力,CSS负责视觉呈现,HTML构建基础结构,而...

    使用Javascript和DOM Interfaces来处理HTML

    标题 "使用Javascript和DOM Interfaces来处理HTML" 涉及的核心技术是JavaScript和DOM(Document Object Model)接口在网页交互中的应用。JavaScript是一种广泛用于Web开发的脚本语言,而DOM则是HTML和XML文档的一种...

    jQuery DOM节点操作源码

    在"jQuery DOM节点操作源码"中,我们可以深入理解jQuery是如何优雅地处理DOM(Document Object Model)节点的。以下是关于jQuery DOM操作的一些关键知识点: 1. **选择器**:jQuery 的核心功能之一就是强大的选择器...

    css、dhtml、dom文档

    DOM文档对象中文手册.chm应该包含了关于节点操作、事件处理、遍历和搜索DOM树等核心概念的详细解释。 【JavaScript】 JavaScript是一种轻量级的解释型编程语言,常用于网页开发,实现客户端的交互功能。JavaScript...

    java、html、css、js、dom参考手册

    在手册中,你会学到如何查找、修改、添加或删除DOM节点,以及如何利用DOM事件提升用户体验。 通过这份参考手册,无论是初学者还是经验丰富的开发者,都能深入理解这些技术的内在原理和实际应用。在学习过程中,可以...

    使用HTML5canvas和svg从DOM节点生成可打印的分页pdf

    总的来说,使用HTML5的canvas和SVG结合JavaScript库,可以从DOM节点生成可打印的分页PDF,这一过程涉及DOM操作、图形转换、布局计算和PDF生成等多个环节。通过熟练掌握这些技术,开发者可以为用户提供更加灵活和强大...

    css dom javascript大全(全是中文api的chm格式)

    《CSS DOM JavaScript大全》是一个非常实用的资源集合,包含了这三个重要技术领域的中文API参考文档,以CHM...所以,无论是初学者还是资深开发者,都将从《CSS DOM JavaScript大全》中获得宝贵的知识和实践经验。

    css + Ajax + DOM + javascript

    JavaScript作为这四者中的胶水技术,它连接了CSS、DOM和Ajax。通过JavaScript,我们可以动态修改CSS样式,实现响应式设计;通过DOM操作,我们可以实时更新页面内容;通过Ajax,我们可以实现前后端数据的交互,提高...

Global site tag (gtag.js) - Google Analytics