私は接続されたユーザーのリストが読み込まれるテーブルを持っています。リスト自体はあまり頻繁に変更されませんが、各行の1つは、1秒ごとに更新されるタイマー(hh:mm:ss)です。タイマーを更新するには、私はこのような何かをやっている:1回の再描画/リフローで複数のDOMアップデートが必要ですか?
var curTime = new Date().getTime()/1000;
$('.timerCell').each(function(){
var $this = $(this);
var initialTime = $this.data('sessionStartTimestamp'); // .data gets when the cell is dynamically created based on data received in an ajax request.
$this.text(unixToHumanTime(curTime - initialTime));
});
私はこれを抱えている問題がある:単一のタイマーのセルが更新されるたびに、それが再描画をトリガします。 ブラウザに再描画を待つよう指示する方法はありますか?またはこれらの更新プログラムを単一の更新プログラムにグループ化する何らかの方法があります。 アップデートが行われるたびにtbody全体を再描画することも考えましたが、おそらくセルを更新するだけではなく、システム集中型であると考えました。
ので、あなたは私がに実行していたスクロール遅れが、これらすべての再描画によって引き起こされたと思っていましたが、それは結局のところ、それはから来ていた毎秒すべてのタイマーのが再描画 –
を誘発することを言っていますセル上にアニメーションのボックスシャドウが表示されている(それらの時間に基づいて異なる色を発光させる) これらの再描画をすべて避けることはパフォーマンス上のメリットになりますが、実際の問題ではないので、これ以上重要ではありません。 – Eric
うん..それはやるよ –