我的 AJAX 请求不一定按顺序向我的控制器发出,这是真的吗?



所以我有一个基本的

$.ajax( { url : 'MyController/MyAction', 
          method : 'POST', 
          async: true, 
          .
          . } );     

可以非常频繁地调用,因为它是事件驱动的。就像如果用户令人讨厌,它可能会在 1 秒内调用 50 次。它更新数据库中的值。

我的朋友告诉我,更新可能以错误的顺序发送到数据库。这是真的吗?这导致我严重的认知失调,今晚我无法入睡。

我应该提到,数据库中更新的这些值与用户相关联。特别是,data就像

data : { userId : '21EC2020-3AEA-4069-A2DD-08002B30309D',
         answerId : '69', 
         val : 'd' }

其中快速连续变化的唯一值是 answerIdval .

不幸的是,我的理解是"是的。订单不保证"。您在 1 秒内发送 http 请求 50 次,服务器将其保存到数据库。当网络良好且服务器强大时,可以按顺序保存到数据库。但是,如果http服务器繁忙或网络中断,它不能保证数据仍然总是按实际发生的顺序排序。例如,1 或 2 个数据订单将在数据库中交换。

我的建议是:如果顺序非常关键,更新流量很大,你应该在http数据中添加一个发生时间,并将其保存到DB。当您从数据库中选择数据时,您可以按发生时间排序,它将确保它在事件发生时具有正确的顺序,以避免由服务器或网络繁忙引起的错误顺序。

相关内容

  • 没有找到相关文章

最新更新