使用render将大量数据从路径传递到Node中的最佳方法?

时间:2015-07-20 18:13:53

标签: javascript node.js express web rendering

我有一个路由文件。当用户访问site.com/page时,我的路由会调用SQL DB,然后解析结果并将其作为JSON返回。然后我用

subprocess.call(['cp','-r','./testdir1/*','./testdir2/'], shell = False)

将数据发送到视图。问题是我的数据相对较大,需要永远发送到视图。我100%肯定这是让我的页面运行缓慢的原因。当我将数据集切成两半时,它显示得更快。我也知道这个数据的实际显示也是一个因素,但我严格关注它从路由传递到视图的速度。

传递一堆小块而不是一块大块是否更有效?围绕这个的唯一方法是逐步传递小块吗?

1 个答案:

答案 0 :(得分:1)

将数据传递给视图的速度并不是很慢 - 可能发生的情况是模板引擎只需要一段时间来呈现您提供的数据。数据本身永远不会留下内存,因此没有“复制”操作。

加速这样的事情的最好方法是使用像AJAX或websockets这样的东西。

这是一个典型的流程:

  • 提出数据库请求以获取少量总项目(假设为10)。
  • 将这些视图传递给您的视图,并立即将其呈现给用户。
  • 在视图中运行一些AJAX代码,然后异步向服务器发送GET请求,请求其余项目。
  • 然后,您可以使用新添加的数据更新DOM。

这通常是处理大量数据显示的最佳方式,因为用户感觉事情非常快,即使它们非常慢 - 页面加载速度快,数据显示速度快等。