我想问一下webservices。
考虑一个场景:
我在vfp桌面应用中输入数据。当我点击“保存”时,应用程序将我的数据保存在本地数据库中,并将其作为xml发送到远程位置的webservice(php文件)。然后,Web服务将我的数据插入远程位置的vfp数据库。 例如,当我点击“保存”时,我意识到我犯了一个错误。我更改了我的条目并再次点击“保存”。数据将通过webservice再次发送,以更新远程位置的数据。
问题是:
如何保证第一次插入后第二次更新将插入远程位置?我的意思是操作顺序是否保证Web服务器中的操作顺序相同?
非常感谢。
答案 0 :(得分:0)
它通常不是相同的序列,因为两个请求彼此相同,到达目的地的时间取决于所采用的路线。在大多数情况下,它会按预期工作。
您可以让客户端等待更新,直到完成上一次更新。只需检查远程位置的响应。
在远程位置结束时你无能为力,因为即使你能检测到丢失的更新请求,你也没有它,它可能永远不会到来。有两种方法可以检测丢失的请求:为每个请求提供一个持续的号码,或者为更新添加某种版本。
对于第一种方式,如果请求到达,请检查它是否具有数字previousNumber + 1
。如果没有,请报告错误或延迟它,直到请求previousNumber + 1
到达。
对于第二种方式,检查当前版本的远程数据是否与请求中的预期版本相同。如果没有,请报告错误。
此版本可能是您点击"保存" - 按钮的时间。如果第二次更新在第一次更新之前到达,则第一次更新将具有比第二次请求使用的当前时间戳更小的时间戳。