解决UITableview里面滑动时重复下载,主线程卡顿问题

在UITablview里面滑动的时候,返回cell的那个方法会不断的被重复调用,导致数据多次被下载,并且每次下载都需要加载网络数据,耗时太多,卡顿
2个问题:
重复下载:每次滑动,重复调用
卡顿:每次调用都发送网络请求,耗时
 
 
内存缓存:创建一个临时字典用于保存数据,也就是做内存缓存(内存缓存在程序每次启动的时候,都会重新下载
但是沙盒缓存:程序再次启动不需要重新下载
 
  • documents:存放在documents里面文件会被自动备份,我们下载的文件不能够放在这里,如果放在这里,苹果会拒绝我们的应用上架
  • tmp:放在这个里面的话,文件可能会随时被删除,也不可以
  • cache:所以一般情况下,我们需要缓存内容,都需要放在cache里面
 
可以使用NeSSearchPathForDirectoriesInDomain 获取到cache的路径
NSCacheDirectories ,
用户搜索区域内NSUserDomianMask ,YES表示:显示全路径
 
 
优化后:(在下载数据之前,先进行判断,如果缓存里面有,直接赋值,如果没有再重新下载,下载之后顺便存在缓存里面)
好处:不会在重复多次下载
 
posted @ 2018-01-26 00:17  gaogaihui  阅读(199)  评论(0编辑  收藏  举报