保留可由多人重新排序的列表的最佳方法是什么?

时间:2012-12-02 09:26:43

标签: web-applications language-agnostic

我有一堆UI元素,为简单起见,我们可以将它们视为li元素。

网页访问者可以插入,删除或重新排序这些li元素,每次用户执行此操作时,都应保留更新后的订单。在这种情况下,链接列表将是最佳解决方案,但对于一个问题。

让我们假设两个用户A和B拥有包含列表打开的网页。该列表看起来像这1 - > 2 - > 3 - > 4 - > 5 - > 6 - > 7 - > 8.

用户A将其重新排序为1 - > 4 - > 3 - > 2 - > 5 - > 6 - > 7 - > 8. AJAX调用更新了1,4,3,2和5的引用,成功地保留了此更改。

在此呼叫前往后端所需的2-3秒内,在用户B的屏幕上保持并更新 - 用户B将其网页上显示的列表更新为5 - > 2 - > 3 - > 4 - > 1 - > 6 - > 7 - > 8.生成了错误的AJAX调用,它们最终搞砸了订单。

会喜欢一些关于如何最好地解决这个问题的建议。

1 个答案:

答案 0 :(得分:2)

每当订单发生变化时,都会更新一个UUID。在想要重新排序时将UUID发送到客户端,并在提交时验证UUID是否未更改。如果有,请拒绝重新排序或通知用户并允许他们采取适当的措施。