是不是我的AJAX请求不一定按顺序进入我的控制器?

时间:2016-03-03 07:04:09

标签: asp.net ajax tsql post transactions

所以我有一个基本的

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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