【译文】在JavaScript里面使用InnerHTML的缺点是什么

用innerHTML的一些问题?

这个innerHTML 属性是非常通用的,因为它提供了简单的方法去更新HTML元素的内容。 其他的方法,是使用DOM二级API (removeChild, createElement, appendChild),但是使用innerHTML还是最容易和最有效率的改变DOM树型的方法。无论如何,innerHTML还是存在一些你需要知道的问题:

  • 在内容被替换的每个地方:当你追加(或编辑) innerHTML的时候,元素里面的所有DOM节点都需要重新被解析和重建。
  • 保留事件句柄到任何DOM元素:设置innerHTML不会自动的附件事件句柄到新的元素,需要你自行跟踪处理它们,并手工添加它们,在某些浏览器里还会有潜在的内存泄露风险。
  • 即使使用 += 如 “innerHTML = innerHTML + ‘html'” ,旧的内容仍然会被字符串的连接替换掉,当动态DOM元素作为加号被创建时,无论开的还是闭的引用都变得难以跟踪。

JavaScript教程



此条目发表在博客, 服务器, 程序开发, 计算机安全分类目录,贴了, , , , , , 标签。将固定链接加入收藏夹。