首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >角5 app慢度

角5 app慢度
EN

Stack Overflow用户
提问于 2018-03-19 16:50:28
回答 1查看 498关注 0票数 2

我试图分析一个角5应用程序,以找出它在加载一些对象时性能不佳的原因。我将更好地解释它:应用程序加载一个网格,其中每个单元格都是一个对象容器。用户能够将对象从侧栏的树中拖到网格中,因此每个单元格都侦听3个事件(它们的名称来自我们正在使用的UI库):

  • dragEnter。检查拖动的对象是否可以放在那里(它将有绿色边框)或否(我们将其边框更改为红色)
  • dragLeave。在对象离开时清除单元格状态
  • dragDrop。做数据库的事。

此外,要执行其他一些操作,比如通过所有单元格查找对象,每个单元格都有3个订阅,以便在用户选择对象(用于剪切/粘贴操作)、当我们要查找对象时以及当用户加载另一个数据网格时知道。

平均每个对象网格有大约100个单元格。处理所有这些事件和订阅是不是太过分了?我有一个有60个单元格的网格,试图在表单上键入任何内容都需要永恒。

例如,要在此表单中键入“Sample”:

这个应用程序停顿了将近10秒,然后把单词中的所有字母都打印出来。为了提高应用程序的性能,所有的单元组件都使用OnPush变化检测策略。我尝试使用Google工具对应用程序进行分析,下面是在输入字段中编写“示例”的结果:

我以为这会给我一些关于表现不佳的线索,但是,根据结果,我找不出原因。

是否有更精确的工具来检查应用程序正在做什么来分析它?

我很感激任何建议,谢谢!

EN

回答 1

Stack Overflow用户

发布于 2018-03-19 17:01:23

问题是来自您的UILibrary的事件没有在ngZone中运行,这导致更改检测不会被触发。应该在使用库的组件中注入ngZone,然后调用run函数:

代码语言:javascript
运行
复制
constructor(readonly ngZone: NgZone) {}

onDragEnter(event: Event): void {
  this.ngZone.run(() => {
   // do here what ever you need to be changed
  }); 
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49368289

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档