tr
の要素に1.000レコードのng-repeat
というテーブルを作成しました。 ng-repeat
がバインドされている項目を変更してテーブル要素を絞り込むと、テーブルをクリアするときに異常な動作が発生します。バルクデータをクリアすると、表示が遅く表示される
この質問の目的のために、私は最も簡単な表現を求めています。
リセットボタンをクリックすると、ボタンをクリックして1つのレコードのみをロードすると、これは私のTypescript
コードです。
SearchFilters =() => {
this.dataSEJLABELCurrent = [];
for (var i = 0; i < 1000; i++) {
this.dataSEJLABELCurrent.push({ SEJCOD: "sej" + i, ADMDAT: "19650521", ADMHEU: "72800", SORDAT: "19650521", SORHEU: "72800", PATCOD: "35", PATPRE: "j" + i, PATNOM: "n" + i, NAIDAT: "19650521" });
}
}
ResetFilters =() => {
var i = 0;
this.dataSEJLABELCurrent=[{ SEJCOD: "sej" + i, ADMDAT: "19650521", ADMHEU: "72800", SORDAT: "19650521", SORHEU: "72800", PATCOD: "35", PATPRE: "j" + i, PATNOM: "n" + i, NAIDAT: "19650521" }];
}
これはng-repeat
と私のHTMLページです:私は、フィルタボタンをクリックしたときに、視覚的に起こる何
<tbody>
<tr ng-repeat="item in vm.dataSEJLABELCurrent" class="pointer shadow hover">
<td>{{::item.SEJCOD}}</td>
<td>{{item.ADMDAT}} {{item.ADMHEU}}</td>
<td>{{item.SORDAT}} {{item.SORHEU}}</td>
<td>{{::item.PATCOD}}</td>
<td>{{::item.PATPRE}}</td>
<td>{{::item.PATNOM}}</td>
<td>{{item.NAIDAT}}</td>
</tr>
</tbody>
は次のとおりです。
- マイ新しくプッシュされたレコードは、現在の最上部に表示されています画面に記録する。
- HTMLテーブルに1000 + 1レコードがあります。
- 他のすべての(過去の)レコードは、2秒間に1つずつ削除されています。
- ある時点で、元の1.000レコードはすべて削除され、期待どおりに新しいレコードが残されます。
- は、新たに追加:私は、レコードのHTML側に追加したすべての操作は、私は、次の操作のすべてのプロセスを減速している見たものから、さらに、ディスプレイの動作を遅くしているように見えます
表示するプロパティ(たとえば、
SEJCOD
の10倍を表示するようなものを複製する場合もあります)。 item.ADMDAT
の代わりに、たとえばvm.formatOwnDate(item.ADMDAT)
の関数を追加します。ui-sref="sejlabel({sejcod:'{{item.SEJCOD}}'})"
をtr要素に追加します。
なぜこの現象は、表示データだけでなく、表示されているのか理解できません。
これは、動作のgif
です:http://imgur.com/y74VHcf(これをクリックするとフルスクリーンになります)。
ng-repeat
モデルを1.000から1レコードに更新すると、多くのジョブがあるように2秒間画面からレコードをパージするような奇妙な動作が発生しますが、1から1.000への更新は即座です。
これは1000年にすでにビューを持つ対1000の記録せずに新しいビューのレンダリングに関係しています推測レコードを追加し、さらに1つだけ追加します。 – rrd
バインディングが実際にあなたのシステムをクラッシュさせてしまうかもしれませんが、角度は作られていません。ページネーションなどを使うことをお勧めします。 – Michelangelo