DOM解析和优化
DOM解析
1. css不会阻塞DOM解析(DOM Tree),但会阻塞DOM渲染(css Tree + DOM Tree -> render Tree )
2. JS阻塞DOM解析,但浏览器会预解析DOM,提前下载相关资源,img,script等
DOM优化
DOM操作会导致repaint和reflow,减少repaint和reflow可以优化性能。
1.合并多次dom操作为一次
element.style.borderColor = '#f00';
element.style.borderStyle = 'solid';
element.style.borderWidth = '1px';
变成
// 优化方案1,用+=,否则会覆盖原有样式
element.style.cssText += 'border: 1px solid #f00;';
// 优化方案2
element.className += 'empty';
2.使用文档片段(documentFragment)或innerHTML批量插入DOM
3.读取DOM元素的布局信息,并且用变量缓存,而不是在循环中多次读取
for (var i=0; i < len; i++) {
    myElements[i].style.top = targetElement.offsetTop + i*5 + 'px';
}
变为
var targetTop = targetElement.offsetTop;
for (var i=0; i < len; i++) {
myElements[i].style.top = targetTop+ i*5 + 'px';
}
4.动画元素使用absolute定位,脱离文档,使用transform,opacity等进行动画,不要使用left,top进行动画
5.使用事件委托减少事件绑定
DOM解析和优化的更多相关文章
- Android DOM解析XML方法及优化
		在Android应用开发中,我们常常要在应用启动后从服务器下载一些配置文件,这些配置文件包含一些项目中可能用到的资源,这些文件很多情况下是XML文件,这时就要将XML下载到文件中保存,之后再解析XML ... 
- JavaEE XML DOM解析
		DOM解析XML @author ixenos XML解析方式(原理) a) DOM 解析树 b) SAX 流事件 DOM解析对应主流工具 i. DOM(官方) i ... 
- 原来 CSS 与 JS 是这样阻塞 DOM 解析和渲染的
		hello~各位亲爱的看官老爷们大家好.估计大家都听过,尽量将CSS放头部,JS放底部,这样可以提高页面的性能.然而,为什么呢?大家有考虑过么?很长一段时间,我都是知其然而不知其所以然,强行背下来应付 ... 
- Android之DOM解析XML
		一.DOM解析方法介绍 DOM是基于树形结构的节点或信息片段的集合,允许开发人员使用DOM API遍历XML树,检索所需数据.分析该结构通常需要加载整个文档和构造树形结构,然后才可以检索和更新节点信息 ... 
- dom解析和sax解析的区别及优缺点
		dom解析一开始就将文档所有内容装入内存,每个元素(标签)都作为一个element对象存储,形成对象树,缺点是对内存占用大,不能解析数据量很大的文档:优点是方便进行crud操作. sax解析,逐行解析 ... 
- JAVA中使用DOM解析XML文件
		XML是一种方便快捷高效的数据保存传输的格式,在JSON广泛使用之前,XML是服务器和客户端之间数据传输的主要方式.因此,需要使用各种方式,解析服务器传送过来的信息,以供使用者查看. JAVA作为一种 ... 
- Java Dom解析的三个实例
		概述 Dom解析的文章已经烂大街了.在这里,只举三个场景下如何编码的例子: xml内有多个同名节点,获取这多个同名节点 已获取到某个节点,生成这个节点的xml描述 修改节点某属性的值 详细的讲解看官请 ... 
- 简单谈谈dom解析xml和html
		前言 文件对象模型(Document Object Model,简称DOM),是W3C组织推荐的处理可扩展标志语言的标准编程接口.html,xml都是基于这个模型构造的.这也是一个W3C推出的标准.j ... 
- 用java操作XML文件(DOM解析方式)
		XML 可扩展标记语言(Extensible Markup Language),是独立于软件和硬件的传输工具. XML的作用: (1)用作配置文件 (2)简化数据共享 (3)简化数据传输 XML DO ... 
随机推荐
- IIS6.0开启gzip压缩
			双击IIS服务器,右键点击网站,点击属性,然后点击服务,我们看到HTTP压缩,然后在压缩应用程序文件,压缩静态文件中打钩,然后点击确定,第一步就完成了 然后我们右键点击web服务扩展,点击添加一个 ... 
- python_输入一个数,判断是否是素数
			while True: n=int(input('n=')) for i in range(2,n): if n%i==0: print("n is not 素数") break ... 
- DongDong坐飞机
			题目连接:https://ac.nowcoder.com/acm/contest/904/D 第一次研究了一下这种题型,还是比较好理解的,因为有半价次数的限制,所以要把每一中情况都写出来,dp[现在的 ... 
- TensorFlow 内置重要函数解析
			概要 本部分介绍一些在 TensorFlow 中内置的重要函数,了解这些函数有时候更加方便我们进行数据的处理或者构建神经网络. 这些函数如下: tf.one_hot() tf.ra ... 
- 数据结构(C语言)分享笔记:数据结构的逻辑层次、存储层次
			[1] 严格意义上数据结构的概念 数据结构,一个简单的定义:相互之间存在一种或多种特定关系的数据元素的集合.即:数据结构 = 元素集合 + 元素间关系的集合 . 在讨论数据结构时,可以基于两个不同的层 ... 
- js判断是否是大小写,数字等方法
			function isEmail(str){ var regu = "^(([0-9a-zA-Z]+)|([0-9a-zA-Z]+[_.0-9a-zA-Z-]*))@([a-zA-Z0-9- ... 
- Mysql--select基础查询
			基本语法:select 查询列表 from 表名 查询列表可以是表中字段.常量值.表达式.函数:查询的结果是一个虚拟的表格. 注意: ①sql语言大小写不敏感 ②关键字不能分行或略写 ③一般书写方式为 ... 
- python 使用requests 请求 https 接口 ,取消警告waring
			response = requests.request("POST", url, timeout=20, data=payload, headers=headers, proxie ... 
- 将xml转为array 输出xml字符
			//将xml转为array private function fromXml($xml){ // 禁止引用外部xml实体 libxml_disable_entity_loader(true); ret ... 
- jsp--提交表单→插入数据库→成功后返回提示信息
			<%@ page language="java" import="java.util.*,java.sql.*" pageEncoding="u ... 
