在javascript中创建dom元素的不同技术及其比较是什么。哪一个更好,为什么?

在javascript中创建dom元素的不同技术及其比较是什么。哪一个更好,为什么?,javascript,dom,Javascript,Dom,有许多方法可以创建dom元素。通过在HTML中传递字符串,并使用javascript的createelement函数。我只知道这些 我想知道在大型javascript应用程序中使用哪种技术更好。也许对性能进行一些比较会有帮助 这是web应用程序开发人员在不知道结果的情况下经常使用的方法。这实际上取决于应用程序。使用innerHTML设置大量元素的速度应该更快,但是在将元素添加到DOM之前,使用createElement可以让您对元素进行更多的控制。通常,人们会在多次迭代中错误地操作循环中的inn

有许多方法可以创建dom元素。通过在HTML中传递字符串,并使用javascript的createelement函数。我只知道这些

我想知道在大型javascript应用程序中使用哪种技术更好。也许对性能进行一些比较会有帮助


这是web应用程序开发人员在不知道结果的情况下经常使用的方法。

这实际上取决于应用程序。使用innerHTML设置大量元素的速度应该更快,但是在将元素添加到DOM之前,使用createElement可以让您对元素进行更多的控制。通常,人们会在多次迭代中错误地操作循环中的innerHTML属性,这对性能非常不利,因此请确保在任何循环结束后设置它


对于小型dom操作,我将坚持使用createElement。与使用innerHTML相比,它更易于维护,而且感觉更结构化。另外,请记住,某些较旧的非Internet Explorer浏览器可能不支持innerHTML。

我同意Andy E的观点,即使用innerHTML更容易,但使用innerHTML是真正的性能杀手。例如,使用innerhtml创建一个简单的表将需要更多的时间来处理简单的数据。其中,因为使用createElement DOM元素函数只需要一小部分

createElement需要大量的编程时间,但这可以通过使用jQuery库来克服。使用jQuery将真正缩短代码,使其跨浏览器运行,并将具有与innerHTML技术相比的巨大性能

我已经对这些技术做了一个完整的比较,很难在这里总结出所有的东西,请参考这篇文章,希望在读完这篇长篇文章后,您的头脑会轻松一些


+1对于DOM方法,同样值得注意的是,使用innerHTML会增加程序员在HTML格式设置中出错的风险。DOM通常比较干净。只有速度差是真正值得注意的,我才会考虑InnHTML。@ XHR:这也是一个很好的点-我记得有一些怪癖,如果某些元素放在不允许的地方,Internet Explorer会抛出错误。这不一定是一件坏事,但错误消息本身并不是很具有描述性,因此有可能会让任何人困惑一段时间。您可以亲自前往jsperf测试速度差异,并查看一些统计信息: