我有一个应用程序,用户可以使用一个小的切换开关/按钮来更改true
和false
之间的切换值,更改会自动发送到服务器,而不需要用户显式地按下“保存”之类的东西。
现在,如果用户快速连续按下切换开关两次,服务器是否可能会乱序接收数据包,从而最终存储错误的值?我所说的服务器指的是在服务器上运行的应用程序逻辑,而不是操作系统网络堆栈。
我知道TCP数据包是有编号的,所以接收操作系统在将它们传递给应用程序之前对它们进行排序,并且HTTP在TCP之上运行。然而,我感兴趣的是HTTP在什么情况下创建/不创建新的TCP连接。
注:我正在使用jQuery发送AJAX请求,我假设它们的发送顺序与对jQuery库的调用相同。这个假设是正确的吗?
发布于 2012-07-03 10:45:30
在http协议中没有这样的保证。即使某些实现实际上可以保证它,您也不应该依赖它。
您可以这样做:维护一个点击计数(如果您愿意,也可以将其称为版本号),并将其发送到服务器。在服务器上,当您更改状态时,存储最后一个版本号,并使用此版本号检查您是否从不覆盖较新的值。
https://stackoverflow.com/questions/11309207
复制