我正在开发一个应用程序,用户可以在其中检查和取消选中列表中的一些项目。他可以反复检查/取消检查。在每个操作中,都会对服务器进行 ajax 调用,从而更新信息。由于不能保证以与调用相同的顺序对服务器进行调用,我怎样才能保持同步?
我可以阻止用户选中/取消选中,直到服务器响应上一个操作,但我认为必须有更好的方法。
我正在开发一个应用程序,用户可以在其中检查和取消选中列表中的一些项目。他可以反复检查/取消检查。在每个操作中,都会对服务器进行 ajax 调用,从而更新信息。由于不能保证以与调用相同的顺序对服务器进行调用,我怎样才能保持同步?
我可以阻止用户选中/取消选中,直到服务器响应上一个操作,但我认为必须有更好的方法。
您在这里担心的是什么并不完全清楚 - 您可能应该描述您真正担心的用户场景。
如果您真的想确保发送到服务器的给定更改永远不会被从同一客户端延迟交付的较早更改覆盖,那么您可以将客户端时间戳附加到每个 ajax 请求和您的服务器上然后忽略正在设置的任何包含比上次更改更旧的时间戳的数据。这要求您在服务器上记住来自给定客户端的给定数据的每次更改的最后时间戳。
一般来说,这不是一个常见的问题。您需要将非常快速的用户更改和一些导致一个请求延迟而下一个请求不延迟的奇怪网络结合起来。由于这两个请求通常采用相同的网络路由,因此这种情况很少见。如果您担心与这种情况不同的事情,请描述它。