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

/*

* 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;

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 单例模式 适用场景:可能会在场景中使用到对象,但只有一个实例,加载时并不主动创建,需要时才创建 最常见的单例模式,...
    Obeing阅读 6,375评论 1 10
  • 简述JavaScript起源起源于美国的Netscape公司,原名为LiveScript,后改为JavaScrip...
    3ab670b99521阅读 8,203评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 28,078评论 1 45
  • 1. tab列表折叠效果 html: 能源系统事业部 岗位名称: 工作地点 岗位名...
    lilyping阅读 5,887评论 0 1
  • DOM优化 DOM与JavaScript 浏览器会把dom与js独立实现像两个独立的小岛 js操作dom从一个岛到...
    流浪的狮子阅读 2,958评论 0 1