web-dev-qa-db-ja.com

websocketから入ってくるライブデータを持つテーブルをソートする方法は?

いくつかの列に数字を表示するテーブルがあり、人々はそれらを昇順または降順に並べ替えることができます。 1つの大きな問題は、4つの数値1 5 2 3があり、それらを昇順1 2 3 5で並べ替えたとしましょう。2番目の数値が7に変わるとどうなりますか?

可能なオプションのカップル

  • ライブデータを無効にするユーザーが任意の順序で並べ替えをクリックし、Webサイトの上部に切り替えて再度有効にする場合(多くの質問が表示され、無効にしておく時間はどれくらいですか?ユーザーまで)もう一度ライブをクリックしますか?そして、人が再度ソートした場合、もう一度無効にしますか?これは、何かをソートするたびに、戻ってライブデータを再度有効にする必要があることを意味します)
  • 並べ替えを維持するとし、列の値が変化するにつれて行を上下に移動させます(これは恐ろしいことになると思います)
  • Sort onceそして、列内のデータが昇順でなくても、列を上向きの矢印で昇順の状態で表示します(それが正しいかどうかはわかりません。最初の順序で1回ソートする場合は、次の瞬間にデータが変更されても、最初の順序は維持されます)
  • デフォルトでは、テーブルはID列でソートされていますテーブルをID列に戻しますデータ値が変更された場合(非常に悪い)ユーザーが戻った場合、ユーザーは何も表示できないためですデフォルトの順序)

何か不足していますか?このケースをどのように処理しますか?

2
PirateApp

私は最良のオプションは最初のものだと思います、ライブデータがいつオンであるかをユーザーに制御を与え、そしてあなたはヘッダー列の矢印でソートを表示できます。

Live Data Control 画像にGoogleのような典型的な矢印を配置するだけでマテリアルデザインを行います。このようにして、ユーザーは情報がライブであるかどうか、および列で並べ替えられているかどうかを知ることができます。 「ライブ」コントロールがオフの場合、矢印の色は黒にする必要があります。 Sry悪い英語のために。

1
Sandy Veliz

あなたが見逃しているのは、この場合、ユーザーコンテキストです。結局のところ、それはすべて、ユーザーがデータをソートするときに達成しようとしていることに依存します。ユーザーはおそらくソートしたくないが、代わりに質問に答えようとしていると思います。では、並べ替えられたテーブルのデータを更新しなくても、質問に答えているのでしょうか?どのようにして彼らが最良の結果を得られるようにしていますか?

ソートがユーザーにとって特に重要である場合に実行できることの1つは、テーブルをソートモードでロックし、更新された行を強調表示することです。 Googleアナリティクスは、リアルタイムのイベントダッシュボードでこれを非常にうまく行っています。値が増加している場合は緑色のハイライト、値が減少している場合は赤色でハイライト表示されます。上部の数字が大きいほどランクが変更される可能性が低くなり、視覚化が不快にならないため、ロックされていると思います。

2
ghislaineguerin