JavaScript 操作 DOM:避免使用 innerHTML 拼接字符串
作者:寒星时间:2026-10-23 21:16:41浏览:113
在 JavaScript 开发中,通过 innerHTML 拼接字符串来添加 HTML 元素虽然便捷,但会导致显著的性能损耗。本文对比了直接使用 innerHTML 赋值与使用 document.createElement 创建节点并追加的方法,指出字符串转换为 DOM 控件的过程会引发性能瓶颈,推荐使用后者以提升页面响应速度。
避免使用 innerHTML 拼接字符串
在排查 Web 应用性能问题时,开发者通常会先检查冗余循环并精简控件数量。若优化后性能仍无改善,需进一步深入排查。有时一个看似微小的修改能显著提升效率,例如将直接操作 innerHTML 的方式调整为标准的 DOM 节点创建方式。
修改前:
修改前的代码示例
以下是修改前的代码示例:
objDiv.innerHTML += '<img id="picture" src="back.gif">'; 修改后:
修改后的代码示例
以下是修改后的代码示例:
var imga = document.createElement("img");
imga.setAttribute("src","back.gif");
imga.setAttribute("id","picture");
objDiv.appendChild(imga); 性能差异分析
为了书写便利,开发者常倾向于直接使用 innerHTML 赋值字符串,而非先创建页面元素、分别赋值属性最后再嵌套追加。虽然前者简单便捷,但性能较差。这是因为浏览器必须将字符串解析并转换为正确的页面控件(DOM 节点),这一转换过程涉及较大的性能开销,从而导致页面响应迟缓。
作者最新文章
JS 鼠标滚轮事件频繁触发导致卡顿怎么优化?
2026-11-05 17:08:07
优化JS回到顶部性能:防抖节流与requestAnimationFrame应用
2026-11-05 16:33:51
JS中Array、Set与Map的区别及应用场景选择
2026-11-05 16:03:02
PixiJS 常见报错排查:纹理跨域、黑屏与内存泄漏解决
2026-11-05 10:05:21
JS数组find与filter取值区别及性能对比
2026-11-05 08:39:21
