角度为5的深陷困境,输入框慢速输入

时间:2018-04-12 04:11:42

标签: angular

有一个问题正在成为一个显示阻止或交易破坏者。 我们已经完成了一个网络应用程序,使用角度5&模板驱动的形式,一切正常,但这一个功能只是杀了我们。这就像狙击手一样。

我们的笔记本电脑和台式机不时会在应用程序输入字段的文本字段中输入速度慢。这种情况全面发生(即windows,mac,safari,chrome)。

情况持续一段时间然后它完全消失了! 在发生过程中,没有迹象表明我们可以检测到任何东西(症状本身除外)。我的意思是没有控制台日志错误,没有高CPU活动,没有任何东西!

问题是我们只是在输入的字母外观中观察到一些延迟(最多一秒)到textfields和textrea框中。

你会如何调试这种情况?

到目前为止,我已经应用了以下解决方案; 拼写检查=无, autocapitalize =关 自动填充=关 自动校正=关 但这并没有结束这个传奇。

我还使用" ng build --prod"编译应用程序。所以它完全被优化了。

您还可以提供其他建议吗?

以下是示例textarea HTML的用法:

<textarea placeholder="enter text" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"  name="description" [(ngModel)]="learningPlan.description"   maxlength="1500" #local_description="ngModel"></textarea>

是否有可能告诉角度在打字时不对这些输入框进行更改检测?我的选项用完了。

this link中有一个可能的建议,即有人建议这样做:@Output() event : EventEmitter<any> = new EventEmitter(false);但它没有说明这行代码应该放在哪里。

3 个答案:

答案 0 :(得分:1)

尝试使用enableProdMode。您可以通过以下方式启用它:

 import {enableProdMode} from '@angular/core';
 :

 enableProdMode();
 platformBrowserDynamic().bootstrapModule(AppModule);

答案 1 :(得分:1)

我找到了ionic issue 10837的讨论,并且已经解决了this link上的内容。


就我而言,当我在模式中键入时,此问题显而易见。所以,我的代码变成了这样:

constructor(public changeDetection: ChangeDetectorRef) {}

openModal() {
    this.changeDetection.detach();
    //open modal
    modal.callback ( r => {
        this.changeDetection.reattach();
    });
}

答案 2 :(得分:0)

在我的一个应用程序中,我遇到了同样的问题,即在加载一个组件之后,所有其他操作(例如进入输入框,打开下拉菜单)都会变慢。

问题与一个指令一起执行,其中ngAfterContentChecked lifecyle挂钩通过DOM操作实现了窗口大小调整。删除后,此应用程序运行正常。 因此,请勿在生命周期内执行任何操作,例如ngDoCheck,ngAfterContentChecked,ngAfterViewChecked。