是否保证按顺序接收后续的AJAX请求?

时间:2012-07-03 10:41:21

标签: jquery http tcp

我有一个应用,用户可以使用一个小切换开关/按钮更改truefalse之间的切换值,更改会自动发送到服务器,而无需用户明确按某些内容喜欢“保存”。

现在,如果用户快速连续两次按下切换开关,服务器是否可能无序接收数据包,从而最终存储错误的值?服务器是指服务器上运行的app逻辑,而不是OS网络堆栈。

我知道TCP数据包已编号,因此接收操作系统会在将它们传递给应用程序之前对它们进行排序,并且HTTP在TCP之上运行。然而,我很好奇的部分是在什么情况下HTTP创建/不创建新的TCP连接。

N.B。我正在使用jQuery发送AJAX请求,我假设它们保证以与调用jQuery库相同的顺序发送。这个假设有效吗?

1 个答案:

答案 0 :(得分:5)

http协议中没有这样的保证。即使某些实现可能实际上保证它,您也不应该依赖它。

您可以执行此操作:维护点击次数(或根据需要调用版本号),然后将其发送到服务器。在服务器上,更改状态时存储最新版本号,并使用此数字检查您是否永远不会覆盖更新的值。