有效刷新表视图

时间:2017-08-29 07:46:01

标签: python ios swift django uitableview

我使用Django作为我的后端,在我的iOS应用程序中,我通过API获取数据。我有一个UITableView,我在这里获取一个地方列表,这些地方也有一个评级值。在实现刷新控件之后,我注意到每当我用来刷新时,它都会在数组中附加新数据并创建双重性。我想到了一个非常简单的解决方案,即我们可以在刷新时清空数组,这样我们就可以避免重复。这是最有效的方法吗?我很担心,因为现在我在我的后端有3个位置,我想要获取,以及什么时候会有数百个,我们会对性能产生什么影响?

3 个答案:

答案 0 :(得分:1)

  

在实现刷新控件之后,我注意到每当我用来刷新时,它都会在数组中附加新数据并创建双重性。我想到了一个非常简单的解决方案,即我们可以在刷新时清空数组,这样我们就可以避免重复。

刷新数据(pull-to-refresh)时,应清空数据的array并填入新数据。

  

我们会对性能产生任何影响吗?

如果你的意思是"分页"加载,你可能应该阅读这个大问题。就个人而言,非常像twitter's post关于实施时间表 另外,应该提到屏幕上的显示数据没有问题,因为reloadData() func仅重新加载可见单元格。用户界面reload/delete/insertRows也没有那么繁重的操作。因此,实现的唯一问题是关于您在屏幕上的数据和数据库的一致性。

答案 1 :(得分:1)

我认为最佳方法将是分页。在开头获取10或20个数据并将其保存在数组中并加载tableview。当用户开始滚动方法tableview中的willDisplayCell时,会增加页数并从服务器获取下一个10或20个数据并将其附加到数组中。

答案 2 :(得分:1)

根本没有,您没有遇到任何性能问题,也可以将新响应分配给您的变量,而不会删除结果 < / p>

rake db:seed

这是处理这种情况的最佳方式,您可以在他们实施的Google Place API SDK最后看到这种情况。 这可以肯定他们在完成所有测试用例和分析后都会做任何事情。