javascript基础六 (DOM优化)

本文探讨了DOM操作中的多种优化方法,包括innerHTML与DOM方法的性能对比、cloneNode的优势、减少DOM操作频率、使用querySelectorAll()等现代选择器、合并DOM操作以减少重排和重绘、缓存DOM节点以提高访问速度及利用文档碎片进行批量插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * DOM优化:
 * 1:innerHTML与DOM操作方法,那个效率会更高
 * chrome:DOM方法要比innerHTML的方法要好
 * firefox:正好相反
 * 2:cloneNode复制节点要比创建新节点,性能优化的多
 * 3:减少DOM的频繁操作
 * 4:新的选择器querySelectorAll()
 *
 * DMON与浏览器
 * 1:重排;改变页面的内容
 * 2:重绘:浏览器的显示内容
 * 3:添加顺序
 * 		-尽量在appendChild前添加操作
 * 4:合并DOM操作
 * 5:缓存布局信息 (用变量来代替dom)
 * 6:文档碎片
 * 		-createDocumentFragment
 *
 * DOM与前端模板
 */
var oUl = document.getElementById('ul');

var oLi = document.querySelectorAll("#ul li");

var str = "";
console.time('hello');
for(var i=0;i<5000;i++){
	//innerHTML方法
	str += "<li>"+i+"</li>";
}
oUl.innerHTML = str;
console.timeEnd('hello');

console.time('DOM');
for(var i=0;i<5000;i++){
	//innerHTML方法

	//DOM方法
	var oLi = document.createElement("li");
	oLi.innerHTML = 'li';
	oUl.appendChild(oLi);
}
// oUl.innerHTML = str;
console.timeEnd('DOM');

console.time('cloneNode');
var oLi = document.createElement("li");
oLi.innerHTML = "li";
for(var i=0;i<5000;i++){
	var newLi = oLi.cloneNode(true);
	// oLi.innerHTML = 'li';
	oUl.appendChild(newLi);
}
console.timeEnd('cloneNode');

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值