我可以在不降低性能的情况下制作DOM树多大?

问题描述:

我正在制作单页应用程序,我正在考虑的一种方法是将所有模板保留为单页DOM树(基本上编译服务器端并在一个页面中发送)的一部分。我不希望每棵树都很复杂。我可以在不降低性能的情况下制作DOM树多大?

鉴于此,有什么在平庸的计算机/浏览器的用户之前在树上节点的最大数量开始出现性能下降的?例如,将6个视图存储为6个隐藏节点,每个隐藏节点具有100个小比特的子节点。

感谢您的意见!

它的短路,你会打一个带宽瓶颈之前,你会永远打一个DOM大小瓶颈。

那么,我没有任何平庸的机器躺在身边。找出类似的东西的唯一方法就是测试它。每个浏览器和每个CPU都会有所不同。

是你的应用程序的JavaScript?

如果是的话,你应该考虑只在模板加载所需usinx XHR,因为你会更关注加载时的流动性比从10年前一个蹩脚的HP性能。

我的意思是,听你描述应该是这十年中的任何机器技术上合理的东西,但你不应该装载的垃圾了前面。

+0

纠正它的所有javascript。我注意到Flow应用程序已将所有模板预先加载到DOM中(请参阅http://www.getflow.com/)并且性能非常出色,所以它似乎值得考虑。 – crockpotveggies 2012-03-30 22:17:45

+0

已更新的答案。我想大多数人会同意。在IE6/7以上的任何新版本中,我看到5000+个节点都没有问题。 – FlavorScape 2012-03-30 22:48:10

+0

似乎是合理的,并同意我认为它确实需要测试。但希望我们都在生产之前进行测试;)谢谢! – crockpotveggies 2012-03-30 22:50:18

单页面应用程序不需要一次将所有模板关闭。例如,您的单个页面可以有一个或多个内容div,可以随意替换。如果您想要通过模板来运行JSON对象来生成HTML,模板可以保留在浏览器缓存中,JSON本身保留在内存中,并且可以在没有任何问题的情况下重新生成HTML,并避免DOM大小问题。

+0

你能够推荐示例或框架吗?我已经在实施backbone.js,因此可以灵活地添加模板。似乎可行。 – crockpotveggies 2012-03-30 22:20:21

+0

如果您在询问框架,那是一个购物问题,而不是技术问题。你的问题措辞的方式是关于表现的技术。 – FlavorScape 2012-03-30 22:34:41

+0

如果你没有注意到Rich的答案没有直接回答我的问题,那么这有什么关系?不是在这里拖动,但它非常合理,如果他建议采用不同的方法 – crockpotveggies 2012-03-30 22:38:01