2016-06-19 4 views
1

最初のポストを変更したときにリフレッシュからテーブルを防ぐために。ハンタントで厄介な問題を解決することを願っています。Handsontable:どのように私はここ数年のために大きなヒントを見つけてきたものの値は、StackOverflowのに

Iは、その内容/フォーマット別の列のセルの値に依存するいくつかの列とhandsontableインスタンスを提示するアプリケーションを有しています。私は、依存するセルの内容とフォーマットを、データベースクエリとサーバ側の処理によって決定し、その結果をafterChange関数で処理するためにhandsontableに送り返します。

私の問題は、ユーザがテーブル内の1つのセルを更新するたびにコードが苦労テーブル内のすべてのセルの書式を再検討しながら、すべてのセルが点滅することです。好ましい挙動は、書式が変更されたセル、すなわち、最初のセルで変更された値に依存する小さなセットのみを更新することである。いずれにしても内容が変更されているのはこれらの依存細胞だけです。なぜWHOLEテーブルを再描画するのですか?

私が検索し、ここや他の場所で検索し、私は見つけることができる答えに最も近いてきたが、これはテーブルの意図した動作であるということです。私は同意しません...テーブルが10行よりも大きい場合、更新プロセスは非常に遅く、ユーザーに気を散らすことになります。

提案がありますか?私はhandsontableのjsコードを直接編集することができますが、私が可能であるかどうかわからないフラグを反転する方が好きです。

ありがとうございます!

答えて

0

afterChange火災あなただけの更新セル(documentation example)のための一度だけ。
あなたの問題はafterChange "連鎖反応"に由来する可能性があります。最初のafterChangeは、関連する1つ以上のセルを変更し、後に他のセルをトリガーします。それが問題ならば、sourceパラメーターにフィルターを置くことができます。

もう1つの解決策は、更新を行うためにデータのコピーを処理することです(data bindingを参照)。すべてが正常に終了したら、テーブルにloadDataを挿入して戻し、afterChangeコールバックでloadDataソースを無視します。

あなたはまだいくつかのパフォーマンスの問題を持っている場合は最後に、あなたがperformance tipsをチェックし、あなたのテーブルを遅らせる可能性のあるすべてのオプションを削除することができます(example with columnSorting

(申し訳ありませんが、私はどこから正確に識別するためにコメントを使用することはできません問題が来る...)

+0

こんにちはニコラス、あなたのアイデアをありがとう。私はそれが最初のケースだと思うが、コードは、フォーマット/コンテンツがユーザーの変更の影響を受けないものであっても、すべてのセルを体系的に再描画(再描画)するようだ。 – karlitoes

+0

jsfiddleを作成して、人々があなたのコードを見ることができるようにすると、より正確なヘルプをこのように得ることができます。 –

+0

こんにちはNicolas、あなたの有益な提案に感謝します。ソースパラメータフィルタを使用しましたが、実際には問題は解決しませんでした。実際の問題は、私が変更されたセルの値に依存するセルのフォーマットをajax呼び出しから引き出すことによって設定していたことです。従属セルの数が多いため、更新に時間がかかります...これは非常に明白です。私は、このコードをサーバーとどのようにやりとりするかを書き直して、これを解決しました。 – karlitoes

関連する問題