美文网首页
渲染数据一、Dom的回流,重绘,映射

渲染数据一、Dom的回流,重绘,映射

作者: 阿辽沙233 | 来源:发表于2018-11-13 14:19 被阅读0次

/*

* Dom回流:(重排reflow):是指html文档结构发生改变(增加删除元素,位置改变等。。),然后浏览器重新渲染html页面

* Dom重绘:是指某一个元素的部分样式变了,浏览器只需要渲染那些改变的样式。例如:背景颜色

* Dom映射:js中获取的元素与html文档当中相对应的元素是呈映射关系,无论样式的改变还是节点的增删,只要html当中元素改变,相对应的js当中获取相应的元素也会跟着改变

* */

var ary = [{

"content": "css是层叠样式表",

"title": "css"

},

{

"content": "html是标记性语言",

"title": "html"

},

{

"content": "js是一门编程语言",

"title": "js"

},

]

var oUl = document.getElementById("uls");

var oLi = oUl.getElementsByTagName("li");

console.log(oLi);

for(var i = 0; i < oLi.length; i++) {

oLi[i].onmouseover = function() {

this.style.backgroundColor = "red";

}

oLi[i].onmouseout = function() {

this.style.backgroundColor = "";

}

}

//一、

//1.动态绑定数据 优势:不会影响原来的页面节点。缺点:使Dom多次回流,消耗内存

// for(var j = 0; j < ary.length; j++) {

// var cur = ary[j];

// var lis = document.createElement("li");

// lis.innerHTML ="<span>"+cur.title+"</span>";

// oUl.appendChild(lis);

// }

//2.字符串拼接的方式绑定数据 优点:Dom只回流一次省内存。 缺点:会影响原来页面的节点

// var str = "";

// for(var j = 0; j < ary.length; j++) {

// var cur = ary[j];

// str += "<li>";

// str += cur.title;

// str += "</li>";

// }

// oUl.innerHTML+=str;

//3.文档碎片 优点节省内存,不会影响原来页面的节点

// var frg = document.createDocumentFragment();

// for(var j = 0; j < ary.length; j++) {

// var cur = ary[j];

// var lis = document.createElement("li");

// lis.innerHTML+= cur.title;

// frg.appendChild(lis);

// }

// oUl.appendChild(frg);

// frg = null;

//二、Dom映射

var ary = Array.prototype.slice.call(oLi);

ary.sort(function(a, b) {

return parseInt(a.innerHTML) - parseInt(b.innerHTML);

});

var frg = document.createDocumentFragment();

for(var j = 0; j < ary.length; j++) {

frg.appendChild(ary[j]);

}

oUl.appendChild(frg);

frg = null;

相关文章

  • 渲染数据一、Dom的回流,重绘,映射

    /* * Dom回流:(重排reflow):是指html文档结构发生改变(增加删除元素,位置改变等。。),然后浏览...

  • 浏览器渲染回流重绘与性能优化

    我们根据渲染的流程可知, 回流一定会触发重绘,而重绘不一定会回流。 渲染性能优化 回流和重绘的代价是比较昂贵的,渲...

  • JS中文档碎片的理解和使用

    问:js操作dom时发生了什么? 答:每次对dom的操作都会触发"重排"(重新渲染界面,发生重绘或回流),这严重影...

  • 2020前端面试问题及答案整理

    css的重绘与回流 重绘:当节点需要更改外观而不会影响布局。 回流:DOM结构的修改引发DOM几何尺寸变化的时候,...

  • 22,重绘、回流

    1,浏览器渲染机制 2,重绘 3,回流 > 重绘。 4,浏览器优化 5,减少重绘和回流

  • 回流与重绘

    回流一定会触发重绘回流: DOM结构的增删改重绘: 颜色,背景, 字体等视觉上页面的改变 重绘不一定触发回流 如何...

  • 面试

    1. css的重绘与回流 重绘:当节点需要更改外观而不会影响布局。回流:DOM结构的修改引发DOM几何尺寸变化的时...

  • DOM树 CSS树 render树 以及JS的加载

    回流和重绘回流一定会引起重绘而重绘可以单独触发 例如修改背景颜色 字体颜色等...引起回流的因素:1.DOM节点 ...

  • 重绘和回流

    重绘: 只是样式的变化,不会引起DOM树变化,页面布局变化的行为叫重绘,且重绘不一定会伴随回流。 回流: 引起DO...

  • 怎样区分页面的回流和重绘

    一、什么是回流和重绘 引起DOM树结构变化,页面布局变化的行为叫回流,且回流一定伴随重绘。只是样式的变化,不会引起...

网友评论

      本文标题:渲染数据一、Dom的回流,重绘,映射

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