<div *ngFor="let student of mystudentsFiltered | orderBy : ['-presence', 'unreadcount']>
在上面for
模板,我使用了一個管orderBy
,這對列表進行排序,每次有一個列表中項目(學生)的狀態更改。不知何故,每次出現鼠標或鍵盤事件時都會重複調用此管道。異步管道用來排序列表,每天有一個鼠標或鍵盤事件時調用 - Angular4
我研究更發現,管在Angular4被執行每次有一個變化檢測。而Angular4考慮在變化檢測機制以下爲:
1)活動 - 點擊提交,滾動,
2)XHR - 從遠程服務器
3)計時器獲取數據 - 的setTimeout( ),setInterval()
如何限制在有數據更改但不包含默認更改檢測事件時調用所述管道?
您已將'ChangeDetectionStrategy'更改爲'onPush',就像這個'changeDetection:ChangeDetectionStrategy.OnPush'一樣,儘管不推薦這樣做,因爲它導致性能較差 –
@RahulSingh這是我第一次看到有人說「onPush」導致糟糕的表現。正確使用'onPush'可以極大地提升**應用程序的性能,您只需要對Angular的變化檢測機制有一個很好的理解。 –
性能是使用管道進行過濾。管道並不意味着用作過濾器 –