Rails - 仅在客户端收到响应时才提交事务



所以,超级奇怪的用例。

基本上,客户端创建对象并将其同步到服务器。服务器保留它们,并使用 UID 返回相同的对象。当客户端获取该 UID 对象时,它会删除客户端版本并保存服务器版本。

我担心客户端会发送对象,并且在服务器验证时断开连接。然后,当客户端再次发送对象时,我们有重复项。

我可以生成一个客户端 ID 以避免他的情况并使用服务器对象保留它,但我正在寻找一种仅在客户端成功收到响应时才保留对象的方法,因此我们知道它不会重新发送请求

我用谷歌搜索了一下,但我什么也找不到。有没有办法做到这一点?

所以,正如我所想的,我的回答确实表明对HTTP的工作原理缺乏理解。我怀疑这项技术是不可能的 - 事实并非如此 - 但确实有一个潜在的问题,我应该解决。

正确的答案是在客户端上生成一个 id,该 id 也存储在数据库中。原因是因为这会使请求幂等- 也就是说,客户端可以根据需要多次重新发送相同的请求,而不会弄乱服务器。

每当服务器收到创建新对象的请求时,它只会检查我们发送的客户端 ID。如果该对象已经存在,请不要再次生成,只需返回服务器生成的对象即可。简单!

最新更新