我使用Django作为我的后端,在我的iOS应用程序中,我通过API获取数据。我有一个UITableView,我在这里获取一个地方列表,这些地方也有一个评级值。在实现刷新控件之后,我注意到每当我用来刷新时,它都会在数组中附加新数据并创建双重性。我想到了一个非常简单的解决方案,即我们可以在刷新时清空数组,这样我们就可以避免重复。这是最有效的方法吗?我很担心,因为现在我在我的后端有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最后看到这种情况。 这可以肯定他们在完成所有测试用例和分析后都会做任何事情。