gpt4 book ai didi

ios - AFNetworking 同步调用(喜欢/不喜欢)

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:46:10 25 4
gpt4 key购买 nike

我需要在应用中实现喜欢/不喜欢功能。所有 API 调用均使用 AFNetworking 和成功/错误处理程序(ios block )进行。

问题是当用户在短时间内多次点击一个按钮时,一些请求被服务器以错误的顺序接收,然后一切都变得错误。例如,会发生双重相似或双重不同。

有没有办法通过 AFNetworking 同步发送所有请求?

如果不是,设计此类 API 请求的最佳实践是什么?

最佳答案

禁用按钮(如评论所建议的那样)不是一个坏主意,尤其是当您抛出一个微调器或一些 UI 更改以让用户知道您正在处理更改时。

否则,您可以将 API 调用限制为仅允许发出单个调用。如果用户按下按钮,则触发调用并更改一些 bool 值或跟踪值。如果他们再次按下按钮,在本地保持更改状态,但等待第一个回调进入。如果他们继续按下按钮,则只跟踪他们的更改,但在您收到 API 调用已完成的通知之前永远不会触发响应(可能有 10-30 秒的超时以防失败)。

调用完成后,查看用户想要的新值是否不同。如果是,请发送它并防止将来的更改外出(但在本地跟踪它们),如果它是相同的(用户在您的第一个电话外出时按了偶数次按钮)则不要发送它。

我什至会将第一个调用延迟 3 秒左右,每次他们在该时间段内按下按钮时都会重置计时器。这样你就不会不必要地触发意外调用(将其视为核心数据保存,如果你知道可能会有一些更改,你可以在保存之前将它们全部完成)。

同步队列的问题是,如果他们按下按钮五次(或更多次),将会有一个相当长的等待队列。那么如果他们关闭了应用程序并且您的电话没有被发送怎么办?那么您的数据库中的信息(可能)不准确。

关于ios - AFNetworking 同步调用(喜欢/不喜欢),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18101198/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com