Javascript 在之前附加或创建html元素更快?--JQuery

Javascript 在之前附加或创建html元素更快?--JQuery,javascript,jquery,html,performance,Javascript,Jquery,Html,Performance,我正在努力使我的应用程序更快。我希望一些元素仅在ajax请求成功时出现。当请求成功时,使用append创建元素更快吗?或者在实际html中创建html元素并简单地使用.html插入元素中的内容更快吗?根据这一点:纯旧innerHTMLbeats.html()(和.html()beats.append()) 然而,根据这一点:DOMbeatsinnerHTML 因此,您可能希望研究DOM1中指定的,甚至IE6中支持的(因此没有理由不使用它) 由于文档片段位于内存中,而不是主DOM树的一部分,因此向

我正在努力使我的应用程序更快。我希望一些元素仅在ajax请求成功时出现。当请求成功时,使用append创建元素更快吗?或者在实际html中创建html元素并简单地使用.html插入元素中的内容更快吗?

根据这一点:纯旧
innerHTML
beats
.html()
(和
.html()
beats
.append()

然而,根据这一点:
DOM
beats
innerHTML

因此,您可能希望研究DOM1中指定的,甚至IE6中支持的(因此没有理由不使用它)

由于文档片段位于内存中,而不是主DOM树的一部分,因此向其添加子元素不会导致页面“回流”(计算元素的位置和几何体)。因此,使用文档片段通常会获得更好的性能

John Resig对此做了很好的评论,并得出结论:

在现代web开发中被大量忽略的方法可以提供 对DOM操作进行了一些重大(2-3倍)性能改进

您可能只想在每个要优化的案例中结合这些技术


希望这有帮助

我还没有检查过,但是自从Resig在2008年写过这个问题以来,我假设jquery使用了documentFragment,所以对我来说,这并不能真正回答这个问题,尽管这很有趣,也很有用。我可能是把你的问题解释错了。如果您询问在加载ajax数据之前/加载时创建一些包装器元素是否可以节省时间,那么是的,应该更快。您可以使用documentFragment(无需增加库的开销,因为它可以加快您的查询速度)。更新了我的答案,加入了一些相关的JSPerf测试。