加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angularjs用桌子慢了

发布时间:2020-12-17 07:25:24 所属栏目:安全 来源:网络整理
导读:我有一张大约30排,大约10列的桌子.行是一个更大的集合的子范围(我手动操作以避免巨大的DOM).列存储在类似[{name:“firstname”,width:200},{name:“married”,type:“bool”}]的列表中,这允许一些灵活性(如将属性“已婚”显示为复选框). 所以只有大约300
我有一张大约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数据放置输入,因为行和列也可以解决您的性能问题,我建议结帐

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读