jQueryのソート可能なプラグインを使用して行を並べ替えることができるテーブル(アイテムのキューを表す)があります。ユーザーはキューを並べ替えることができ、更新された順序でサーバーを正常に保存できます。サーバとブラウザの間でキューの同期を維持するにはどうすればよいですか?
私が直面している課題は、サーバーが定期的にキューの一番上にあるアイテムを取り出して処理し、それをキューの一番下に移動することです。このような状況が発生した場合、ブラウザで表示される順序は古くなり、順序を変更しようとするとインデックスがすべて乱されます。
私はこの問題を解決するためにいくつかの解決策を考え出しましたが、どのようなやりとりがユーザビリティの観点から意味をなさかはわかりません。私はUIでドラッグイベントを検出し、最初にサーバー上の更新をチェックすることを検討しましたが、私がページをリフレッシュすると、ユーザーが途中であったドラッグが中断されます。
私はこの情報をポーリングしてから、更新が発生する数秒前にドラッグ機能をロックし、次に注文を更新してドラッグ機能をロック解除すると考えました。
これまで誰かが同様の問題を解決したのか不思議です。どんなアイデアや指導も大歓迎です。
良いアイデア。私はこの方向に行くと思う。私はAjaxコールでテーブルの順序を更新するために定期的にポーリングを行い、次にリオーダでドラッグを終了したときにクライアントの状態がサーバーと同期していないかどうかを確認します。同期がとれていない場合は、注文が変更されてからサーバー上で注文が変更されたことを示す警告が表示されます。変更を破棄し、サーバーの注文に合わせてブラウザを再同期します。ありがとう! –