我有一个应用程序,用户可以在其中更改切换值true并false使用一个小切换开关/按钮,更改会自动发送到服务器,而无需用户明确按下"保存"之类的内容.
现在,如果用户快速连续按两次切换开关,服务器是否可能无序接收数据包,从而最终存储错误的值?服务器是指服务器上运行的app逻辑,而不是OS网络堆栈.
我知道TCP数据包是编号的,因此接收操作系统在将它们传递给应用程序之前对它们进行排序,并且HTTP在TCP之上运行.然而,我很好奇的部分是在什么情况下HTTP创建/不创建新的TCP连接.
NB我正在使用jQuery发送AJAX请求,我假设它们保证以与调用jQuery库相同的顺序发送.这个假设有效吗?
http协议中没有这样的保证.即使某些实现可能实际上保证它,您也不应该依赖它.
您可以这样做:维护点击次数(或者如果您愿意,可以将其称为版本号),然后将其发送到服务器.在服务器上,更改状态时存储最新版本号,并使用此编号检查是否从不覆盖更新的值.