Javascript,向DOM追加大型表的最佳方法

Javascript,向DOM追加大型表的最佳方法,javascript,append,innerhtml,Javascript,Append,Innerhtml,我使用JSON和PHP返回一个非常大的表10000+条记录 我遇到的问题是,我使用innerHTML将该表附加到DOM中,但这有时需要15秒或更长时间,并导致浏览器崩溃。是否有任何解决方案可以以某种方式对此进行优化?该表已经在PHP中预构建为一个字符串,所以我所要做的就是附加它。最好的方法可能是使用一个较小的带有分页的表(我不确定是否有人真的想要滚动10k+行) 另一种方法是,如果您坚持要有这样一个大的表,可以将HTML分解成几行(甚至用元素分组),然后使用计时器将它们附加到DOM中的表中。您无

我使用JSON和PHP返回一个非常大的表10000+条记录


我遇到的问题是,我使用innerHTML将该表附加到DOM中,但这有时需要15秒或更长时间,并导致浏览器崩溃。是否有任何解决方案可以以某种方式对此进行优化?该表已经在PHP中预构建为一个字符串,所以我所要做的就是附加它。

最好的方法可能是使用一个较小的带有分页的表(我不确定是否有人真的想要滚动10k+行)


另一种方法是,如果您坚持要有这样一个大的表,可以将HTML分解成几行(甚至用
元素分组),然后使用计时器将它们附加到DOM中的表中。

您无能为力,您可以尝试呈现一个懒惰的HTML表,但这需要大量的工作。另外,您不应该通过ajax向客户端发送HTML。你应该发送JSON并让客户端构建这个表。这个表来自MySQL,所以我想不出在客户端上构建它。为什么通过ajax发送HTML不好?如果是HTML格式,发送的数据的大小可能比JSON格式大得多。而且,让它发送HTML会限制您处理数据的能力。如果发送JSON,您可以做的不仅仅是将其显示为一个表。@Ray,因为HTML应该由浏览器加载以呈现到新文档中。当您已经有了一个文档时,您可以使用DOM方法和数据来创建新的元素。我想我可以用PHP将该表分解成10个较小的部分,然后用javascript设置一个计时器来每隔一段时间构建这些部分。我认为会有一个更简单的方法。@Ray:那个配置了5MB+的网站导致了5MB+的下载。这可能不是你想要的。老实说,我认为你真的应该考虑一些其他的方法。好的,谢谢你的建议。你怎么知道下载了多少?我在HTML/Javascript方面不是很好。我安装了firebug,但并不确定它的全部功能。@Ray:Google Chrome有一个任务管理器,显示每个选项卡/进程的网络使用情况。