所以我有一个基本的
$.ajax( { url : 'MyController/MyAction',
method : 'POST',
async: true,
.
. } );
可以非常频繁地调用,因为它是事件驱动的。如果用户讨厌,可能会在1秒钟内调用50次。它更新数据库中的值。
我的朋友告诉我,更新可能会以错误的顺序发送到数据库。这是真的?这导致我主要的认知失调,今晚我无法入睡。
我应该提到这些值是数据库中的更新与用户相关联。特别是,data
就像
data : { userId : '21EC2020-3AEA-4069-A2DD-08002B30309D',
answerId : '69',
val : 'd' }
快速连续变化的唯一值是answerId
和val
。
答案 0 :(得分:1)
不幸的是,我的理解是"是的。订单无法保证"。 您在1秒内发送50次http请求,服务器将其保存到DB。 当网络良好且服务器强大时,可以按顺序保存到DB。 但是如果http服务器繁忙或网络中断,它不能保证数据仍然总是按实际顺序排序。 Ex,1或2数据顺序将在DB中交换。
我的建议是:如果订单非常关键并且更新流量很大,您应该在http数据中添加一个发生时间并将其保存到DB。 当您从数据库中选择数据时,您可以按发生时间进行排序,并确保它具有正确的顺序,因为事件发生时可以避免服务器或网络繁忙导致的错误排序。