前端处理大量数据

739 阅读1分钟

当后端一次返回大量数据的时候,前端该如何处理,切记一次渲染大量的数据,导致网页许久才出现,用户体验不好。 解决方法有两种:

  1. 懒加载与分页:监听@scrool滚动事件,判断是否向下滚动,若是向下滚动,就给当前内容数组push后面的滚动之后scrollTop/item(取整)的数据,数据在不断的增多。最好使用防抖来提高性能。

  2. 虚拟滚动技术

就是显示的数据数量是固定的,每次移动都改变显示的数据,监听滚动事件,每次滚动获取scrollTop/item向下取整Math.floor()从而获取原数据数组的开始选项,加上数组的长度获取原数据数组的结束位置,通过slice给显示数组赋值,还需要每条数据添加移动的位置,从而使滚动条出现,也就是给每一项添加transform: translateY(scrollTop -scrollTop%item)的移动,最好使用防抖来提高性能。

第二种方法更利于连续滚动多次。