gpt4 book ai didi

Angularjs 用一张 table 很慢

转载 作者:行者123 更新时间:2023-12-03 09:29:49 24 4
gpt4 key购买 nike

我有一个大约有 30 行和大约 10 列的表格。行是更大集合的子范围(我手动执行以避免巨大的 DOM)。列存储在列表中,如 [{name: "firstname", width: 200}, {name: "married", type: "bool"}] ,这允许一些灵活性(例如将“已婚”属性显示为复选框)。
所以只有大约 300 个字段,但摘要周期大约需要一秒钟(在我的 i5-2400 CPU @ 3.10GHz 上)。
我在解释 Batarang 表演页面时遇到了麻烦。它说

p.name | translate  16.0%  139.6ms
e[c.name] 15.8% 138.4ms
c.name | translate 11.1% 96.3ms
(稀疏命名的)变量的含义对我来说很清楚:
  • e代表实体,即表格行。
  • p代表属性(property),只发生在表之外。
  • c代表列。
  • e[c.name]代表字段内容(来自实体 ec 命名的属性)。

  • 但性能数据毫无意义:
  • p.name可能只用了 10 次,怎么可能需要那么长时间?
  • c.name | translate也只出现 10 次(在标题行中),怎么可能需要那么长时间?

  • 我知道 {::a_once_only_bound_expression} ,我试过了,但没有多大成功。我真正需要的是以下内容:
  • c更改,重新创建整个表(这种情况只发生在异常情况下,所以我不关心速度)。
  • e更改,重新创建其整行(如果有更改,则仅在一行中)。

  • 有什么方法可以实现这一目标吗?
    一个解决思路
    我想,可以使用指令在渲染后从行中剥离所有有 Angular 的东西来实现我所需要的:
  • 删除所有子作用域
  • 带着他们所有的 watch
  • 但保留所有 HTML 和监听器

  • 如果需要,我可以每行添加一个负责重绘的 watch 。
    是否有意义?
    更新
    我一直在忙于开发应用程序 - 改进性能以外的其他方面。我很幸运,得到了一些表现作为奖励。然后我稍微简化了页面,现在速度可以接受。最起码到现在。
    仍然:
  • 我不相信上述 Batarang 性能值。
  • 我仍然很好奇如何实现上述解决方案的想法以及它是否有意义。
  • 最佳答案

    你可能想看 NgTable将来自 json 数据的输入作为行和列放置也可以解决您的性能问题,我建议结帐

    关于Angularjs 用一张 table 很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39158971/

    24 4 0