ios - swift segue new viewcontroller 在后台加载其他任务时卡住
问题描述
目前,我有一个基于 API 加载的 UItableview。当点击一个单元格时,它会继续(显示 egpush)到另一个视图控制器。它在第一次 API 调用后显示所有单元格,然后调用其他 API 并加载其他数据(这需要一段时间并且还大量使用 cpu),但加载时滚动似乎很流畅。但是,当没有完全加载时,如果我单击一个单元格并弹出另一个 viewController,整个应用程序会冻结片刻。(新的 viewController 显示了所有内容,只是没有响应)有没有解决方案?我现在能想到的是通过一次加载更少的单元来减少 CPU 负载。
解决方案
通常你不会想要这样做:
“加载其他数据(这需要一段时间并且还大量使用 cpu)”
更好的解决方案是不要调用您的第二次调用来获取所有数据,而只需获取显示在您正在使用的下一个视图控制器上所需的数据。通常通过在 API 调用中传递 ID 来完成。因此,在您的 tableviews 上,didSelectRowAt
您将进行 api 调用以获取特定于下一个屏幕所需的数据,然后进行 segue。
如果由于服务器端的限制而无法做到这一点,那么您将需要链接前两个调用。意思是在您拥有所有数据之前甚至不显示表格视图单元格。
推荐阅读
- reactjs - 来自库的反应上下文未在消费者中更新
- django - Slugify self.title + 随机数
- kubernetes - pod 被视为失败的条件是什么
- database - 如何将数据从 Netezza 迁移到 Bigquery
- colors - 使用纯色的材质在使用 THREE.ACESFilmicToneMapping 时会被烧焦
- java - 如何在 servlet 代码中添加成功的警报消息
- vue.js - Vee 验证如何验证单选按钮
- c++ - 我如何编译电报 github 提供的电报 cpp 客户端?
- python - 遍历与用户输入不匹配的 SQLite DB 元组
- snowflake-cloud-data-platform - 在 Snowflake warehouse_load_history 表中,AVG_RUNNING 列到底是什么意思?