微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angularjs用桌子慢了

我有一张大约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代表属性,仅出现在表外.
> c代表专栏.
> e [c.name]代表字段内容(来自实体e,由c命名的属性).

性能数据毫无意义:

> p.name只使用了10次,怎么可能需要那么长时间?
> c.name |翻译只发生了10次(在标题行中),它​​怎么能花那么长时间?

我知道{:: a_once_only_bound_expression},我尝试过,但没有太大的成功.我真正需要的是以下内容

>当c改变时,重新创建整个表(这只是异常发生,所以我不关心速度).
>当e发生变化时,重新创建整行(当有变化时,则只在一行中).

有没有办法实现这个目标?

解决方案的想法

我想,我需要的是使用一个指令在渲染后从行中剥离掉所有角度的东西:

>删除所有子范围
>用他们所有的手表
>但保留所有HTML和听众

如果需要,我可以每行添加一个负责重绘的手表.

是否有意义?

更新

我一直在忙于应用程序 – 改进除性能之外的其他事情.我很幸运,并获得了一些奖励.然后我将页面简化了一点,现在速度可以接受.至少现在(是.

仍然:

>我不相信上述Batarang的表现值.
>我仍然很好奇如何实现上述解决方案的想法,如果它是有道理的.

您可能希望查看 NgTable从json数据放置输入,因为行和列也可以解决您的性能问题,我建议结帐

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐