Javascript Ajax问题:使用innerHTML从web服务获取数据时出现延迟,请参考

Javascript Ajax问题:使用innerHTML从web服务获取数据时出现延迟,请参考,javascript,asp.net,ajax,Javascript,Asp.net,Ajax,我正在开发一个ajax应用程序,它将在一个html表中显示大约一百万条记录。Web服务从服务器返回记录,我通过包含数据和标记构建了一个logn字符串,然后使用innerHTML(不使用DOM获得更好的性能)放置该字符串 为了进行测试,我在数据库中放入了6000个记录(存储过程执行大约需要4秒钟) 在本地系统(同一台机器上的数据库和应用程序)上进行测试时,在页面中显示记录大约需要5分钟。在脱离web服务器后,它甚至有更长的时间没有响应。它看起来性能很差。我把记录放在一个CSV文件中,它的重量不到2

我正在开发一个ajax应用程序,它将在一个html表中显示大约一百万条记录。Web服务从服务器返回记录,我通过包含数据和标记构建了一个logn字符串,然后使用innerHTML(不使用DOM获得更好的性能)放置该字符串

为了进行测试,我在数据库中放入了6000个记录(存储过程执行大约需要4秒钟)

在本地系统(同一台机器上的数据库和应用程序)上进行测试时,在页面中显示记录大约需要5分钟。在脱离web服务器后,它甚至有更长的时间没有响应。它看起来性能很差。我把记录放在一个CSV文件中,它的重量不到2MB。我不明白为什么构建html表并将字符串放入innerHTML需要花费如此长的时间(如果这是问题的话)。要求在网页上显示大约一百万条记录,但仅6000条记录的性能令人失望。我不知道如何提高绩效


请引导我并帮助我。

你想在一个页面上显示一百万条记录?无论您如何优化服务器代码,都需要解析/呈现大量html,尤其是在表中时

即使使用.innerHTML也不会在任何时候“拯救”你。渲染引擎仍然需要解析/设置/渲染/定位数百万个表行/单元格,您必须等待它工作

如果你一定要在一个页面上显示所有这些记录,试着把它们分成可管理的块。让AJAX调用一次返回(比如)100条记录,将它们放入表中,然后再获取100条记录,等等。。。至少这样,您会看到页面内容在增长,而不必坐在那里等待1000000个表行在一次快照中显示出来


一个更好的选择是分页,一次只显示100条记录,并且您提供了一个带有>按钮的标准导航,用于交换数据的“页面”。

您试图在一个页面上显示100万条记录?无论您如何优化服务器代码,都需要解析/呈现大量html,尤其是在表中时

即使使用.innerHTML也不会在任何时候“拯救”你。渲染引擎仍然需要解析/设置/渲染/定位数百万个表行/单元格,您必须等待它工作

如果你一定要在一个页面上显示所有这些记录,试着把它们分成可管理的块。让AJAX调用一次返回(比如)100条记录,将它们放入表中,然后再获取100条记录,等等。。。至少这样,您会看到页面内容在增长,而不必坐在那里等待1000000个表行在一次快照中显示出来


一个更好的选择是分页,一次只显示100条记录,并且您提供一个带有>按钮的标准导航,以交换数据的“页面”。

正如Marc所述,您需要分页。看看这是否有帮助-


除此之外,您还可以通过使用master-detail模式来优化结果-仅获取记录的摘要(master),并且在master中的某些操作上,获取详细信息并在屏幕上显示。这将减少从服务器传输的数据的大小

如Marc所述,您需要分页。看看这是否有帮助-


除此之外,您还可以通过使用master-detail模式来优化结果-仅获取记录的摘要(master),并且在master中的某些操作上,获取详细信息并在屏幕上显示。这将减少从服务器传输的数据的大小

您是在服务端还是客户端执行字符串concat?编码Gorilla它是在客户端执行字符串concat您是在服务端还是客户端执行字符串concat?编码Gorilla它是在客户端执行。实际上,这不是一个可以使用主-详细模式的场景。只有详细记录要显示,没有主记录。任何更多的想法在这种情况下,分页是你需要的。它可以是基于传统页面链接的,也可以设置一种策略,在用户滚动列表时异步获取数据(即滚动上的continuos update)。还有一件事,您使用什么格式进行数据传输/交换?回顾一下这个w.r.t xml、json、html等字节,实际上它不是一个可以使用主细节模式的场景。只有详细记录要显示,没有主记录。任何更多的想法在这种情况下,分页是你需要的。它可以是基于传统页面链接的,也可以设置一种策略,在用户滚动列表时异步获取数据(即滚动上的continuos update)。还有一件事,您使用什么格式进行数据传输/交换?查看此w.r.t xml、json、html等