我有一堆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调用,它们最终搞砸了订单。
会喜欢一些关于如何最好地解决这个问题的建议。
答案 0 :(得分:2)
每当订单发生变化时,都会更新一个UUID。在想要重新排序时将UUID发送到客户端,并在提交时验证UUID是否未更改。如果有,请拒绝重新排序或通知用户并允许他们采取适当的措施。