iOS 端前端10w条数据显示处理

159 阅读2分钟

如果后端一次返回10w条数据,前端改如何处理

1. 如果接口提供方是自己的开发人员,一定要和他分析利弊,一次反馈大量数据有以下缺点

1. 带宽消耗

一次返回10w条数据会占用大量的带宽资源,可能 会导致服务器的带宽资源不足,影响其他用户的访问速度

2. 内存占用

一次返回10w条数据需要暂用大量的内存资源,导致服务器的内存不足,影响服务器的稳定性和性能

3. CPU负载

一次返回10w条数据需要大量的计算和处理,会占用服务器的CPU资源,可能会导致服务器的CPU负载过高,影响服务器的响应速度和性能

4. 数据库压力

一次返回10w条数可能需要大量的数据库查询和处理,会增加数据库的负担,可能会导致数据库响应过慢,影响服务器的性能

2. 基于以上缺点,如果接口提供方还是坚持要一次返回10w条数据,那么前端可以提供一下方法进行处理,防止前端也会出现上面类似的问题

1. 接口数据缓存,将接口数据缓存下来,然后调用新接口获取最新的数据

开启子线程,数据缓存的时候,用数据的唯一识别码,一般是指id为key,然后数据字典为value进行缓存,获取到新数据的时候,先将新的接口数据通过key,value的形式保存到内存中。然后新旧数据以10条为一组,依次比较。然后依次通过旧数据的key,去新的数据中查找,查找到后,将比对字典的hash值,如果一样则不更新旧数据,将对应的新数据标志为已查找,如果不一样用新数据更新旧数据。如果通过旧数据的key查找不到对应的新数据,则删除旧数据。然后将新数据中没有标记的数据,插入旧数据的末尾处。并保存到当前内存中。注意修改数据的时候加锁

2. 列表数据显示的时候,通过分页的形式进行显示

根据页码去当前内存中读取对应的数据,如果取不到就不显示