angular ng-repeat ディレクティブに問題があります。現在、APIからアイテムのリストを取得するプロジェクトに取り組んでおり(1kアイテムになる場合もあります)、このリストは5秒ごとに更新する必要があります(関連プロジェクトを監視しています)。
リストの長さが少し大きくなると、DOM の再レンダリング中に Web サイトが「遅くなる」可能性があります。angularがDOM全体を再生成することがわかります(ただし、アイテムの95%は同じです!)
可能なアプローチの 1 つは、たとえば item.id に「追跡」式を設定することです。しかし、ここで別の問題が発生します。たとえば、説明が他のユーザーによって変更されたときにアイテムを再生成したいです。track by は item.id への式であるため、item.description の変更は DOM のアイテムを更新しませんでした。
複数のプロパティで追跡する方法はありますか? たぶん何かの機能?それとも「手」で比較しますか?
任意のアイデア、コード サンプルをいただければ幸いです :)
アップデート
トラックをitem.id angularに設定したときに発見したことは、アイテムのhtmlを再作成せず、既に作成された要素の値を更新するだけで、削除して作成するよりも「速い」ようです。以前は少し違いましたが。
修理
ng-repeat USE track by item.idで 1,000個を超えるアイテムのパフォーマンスを向上させたい場合は、パフォーマンスが向上します;)