javascript - 在服务器中构建 html 并绑定(bind)到 ng-repeat

标签 javascript performance angularjs angularjs-directive angularjs-ng-repeat

我有一些 ng-repeat 正在构建的表。该表包含大量数据,有时 html 的构建阶段在较弱的计算机上需要 10-20 秒。

所以我开始探索如何在服务器中构建 html,但问题是我会失去数据绑定(bind),而我需要它,因为我在表中具有内联编辑功能。

最终的解决方案将在服务器端渲染表格,保留所有指令,包括 ng-repeat,并在客户端,使 ng-repeat 识别出 html 已经被第一次渲染并且不会再次渲染它,直到数据第一次发生变化。

在 ngRepeatDirective 的 Angular 源代码中,有一个“lastBlockMap”对象,其中包含 ng-repeat 创建的每个元素之间的映射到其作用域,在该结构中:

clone: [THE_ELEMET]
id: "005"
scope: ChildScope

通过阅读这篇文章: http://www.bennadel.com/blog/2443-Rendering-DOM-Elements-With-ngRepeat-In-AngularJS.htm

我得出的结论是,如果我创建这个对象,并将其以某种方式传递给 ng-repaat 指令,该指令将知道 html 已经被渲染,并且不会再次渲染。

问题是如何将这些信息传递给ng-repeat??? 有谁遇到过这种情况吗?

附注 我熟悉所有“ngRepeat preformance”帖子和文章,并且在实现此解决方案之前尝试了很多其他选项,因此请尝试帮助我解决这个问题。

第二个附注 抱歉我的英语...:)

最佳答案

目前还没有将 html 编译成 Angular 循环的解决方案。

也许您需要尝试清理尝试渲染的 json 数据并使其尽可能简单,如果您在表格内包含指令,请尝试在表格完成后渲染它。

此外,尝试找出缓慢的原因,禁用内联编辑和表内的所有其他功能。

关于javascript - 在服务器中构建 html 并绑定(bind)到 ng-repeat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20764100/

相关文章:

mysql - 如果其中之一在 Mysql 中具有特定变量,如何改进选择值范围

javascript - map()、reduce() 和 filter 与 forEach()

javascript - 使用开发人员工具调试主干应用程序

javascript - 具有大量数据的 AngularJS 无限滚动

angularjs - 如何创建 AngularJS jQueryUI 自动完成指令

JavaScript对URL编码的处理

javascript - 替代 node.js 中的 through2-map [与 learnyounode 相关]

javascript - 我可以在标题和重要文本上使用 tabindex 吗?

javascript - 了解 JavaScript 中的函数

c# - 为什么以下代码在 WCF 服务与控制台应用程序中运行速度相当慢?