0

我有一个UI用5列的表。这些列包含不同的图表,这些图表使用不同的指令呈现,即自定义进度条,保证金图表,达到目标图表等。 目前它工作正常。在Angularjs中,是否可以并行加载多个指令?

问题: - 加载页面时,页面大约需要10s才能渲染。 (来自后端的数据需要800-900ms才能返回数据)。当我将图表列的数量从5减少到1时,渲染页面所花的时间已大幅减少到2.5秒。随着我逐一添加列,渲染页面的时间会持续增加1-2秒。

我在寻找是否有一种方法可以同时调用5个指令,以便渲染页面所需的时间变为3-4秒左右。

在此先感谢!

+0

5列中的数据来自服务器的单个调用,还是列专用调用?和它有多少行? –

+0

所有5列的数据都是来自服务器的sigle调用。返回的数据包含对象列表,其中每个对象都有36个属性。一次我收到了最多25个物体。 1 json - 25对象,其中每个对象包含36个属性/字段。 总共耗时800/900 ms – nishant3150

回答

0

看着你的问题,我有下面的发现分享。

  1. 指令总是平行运行,除非它们不相互嵌套。假设在你的场景中,他们在ng-repeat循环中,所以它们将平行运行。
  2. 避免一次性调用所有25个对象(具有分页类用例),这将节省服务器级别的时间。
  3. 避免同时呈现DOM上的所有图表。 DOM渲染是加载周期中最昂贵的过程。尝试渲染5,但用显示块显示一个,然后用显示屏休息一下,然后逐个显示它们。这将避免DOM冻结。在ng-repeat中尝试限制选项。

如果您可以共享DOM代码和JS代码,那将会很棒。

相关问题