难道我的 AJAX 请求不一定按顺序发送到我的 Controller 吗?
Is it true that my AJAX requests aren't necessarily made to my Controller in order?
所以我有一个基本的
$.ajax( { url : 'MyController/MyAction',
method : 'POST',
async: true,
.
. } );
因为它是事件驱动的,所以可以非常频繁地调用。如果用户令人讨厌,它可能会在 1 秒内被调用 50 次。它更新数据库中的值。
我的朋友告诉我,更新有可能以错误的顺序发送到数据库。这是真的?这导致我严重的认知失调,我今晚无法入睡。
我应该提一下,数据库中更新的这些值与用户相关联。特别是 data
就像
data : { userId : '21EC2020-3AEA-4069-A2DD-08002B30309D',
answerId : '69',
val : 'd' }
其中唯一快速连续变化的值是 answerId
和 val
。
很遗憾,我的理解是"YES. The order is not guaranteed"。
您在 1 秒内发送 50 次 http 请求,服务器将其保存到数据库。
网络好,服务器强的情况下,按顺序存到DB是可以的。
但如果http服务器繁忙或网络中断,并不能保证数据仍然始终按照真实发生的顺序排列。例如,1 或 2 个数据订单将在 DB 中交换。
我的建议是:如果顺序很关键,更新流量大,应该在http数据中添加一个happen time保存到DB中。
当你select来自数据库的数据时,你可以按发生时间排序,它会确保它在事件发生时具有正确的顺序,以避免由于服务器或网络繁忙而导致的错误排序。
所以我有一个基本的
$.ajax( { url : 'MyController/MyAction',
method : 'POST',
async: true,
.
. } );
因为它是事件驱动的,所以可以非常频繁地调用。如果用户令人讨厌,它可能会在 1 秒内被调用 50 次。它更新数据库中的值。
我的朋友告诉我,更新有可能以错误的顺序发送到数据库。这是真的?这导致我严重的认知失调,我今晚无法入睡。
我应该提一下,数据库中更新的这些值与用户相关联。特别是 data
就像
data : { userId : '21EC2020-3AEA-4069-A2DD-08002B30309D',
answerId : '69',
val : 'd' }
其中唯一快速连续变化的值是 answerId
和 val
。
很遗憾,我的理解是"YES. The order is not guaranteed"。 您在 1 秒内发送 50 次 http 请求,服务器将其保存到数据库。 网络好,服务器强的情况下,按顺序存到DB是可以的。 但如果http服务器繁忙或网络中断,并不能保证数据仍然始终按照真实发生的顺序排列。例如,1 或 2 个数据订单将在 DB 中交换。
我的建议是:如果顺序很关键,更新流量大,应该在http数据中添加一个happen time保存到DB中。 当你select来自数据库的数据时,你可以按发生时间排序,它会确保它在事件发生时具有正确的顺序,以避免由于服务器或网络繁忙而导致的错误排序。