我有一个App,用户可以通过一个小的开关/按钮改变一个布尔值(true/false),更改会自动发送到服务器,无需用户显式地按下“保存”之类的按钮。现在,如果用户连续两次快速按下切换开关,是否可能导致服务器接收到乱序的数据包,最终存储了错误的值?这里我的意思是指运行在服务器上的应用逻辑,而非操作系统网络栈。我知道TCP数据包是编号的,所以接收方的操作系统会在把它们传递给应用程序之前对它们进行排序,而HTTP是在TCP之上运行的。但我好奇的部分是,HTTP在哪些情况下创建或不创建新的TCP连接。请注意,我使用jQuery发送AJAX请求,并假定它们保证按调用jQuery库的顺序发送。这个假设是否有效?
(new Date).getTime()
。 - David Hedlund切换开关
直到从服务器接收到 AJAX 响应。在我看来,这是最好的方法。 - freakish$.ajax
将以相同的顺序在传输(例如XMLHttpRequest)上调用send
。 此外,从个人经验来看,在慢的互联网连接情况下,顺序有相对较大的机会不同。即使这些调用相隔数十毫秒。但是,作为一名带有快速互联网连接的开发人员,这真的很难复制。 - Yeti