长列表优化

完整长列表的渲染优化

1 .不做优化的情况下,耗时是怎样滴呢?
2 .https://zhuanlan.zhihu.com/p/26022258
3 .结论就是,不同的插入DOM方法,只有innerHtml会有10%的优势,也就是说性能瓶颈不在调用DOM API的阶段,无论使用哪种DOM API添加元素,性能几乎都差不多。
4 .大致就是1w个阶段需要500ms,如果一个列表选项至多有20个节点,那么就是500ms可以渲染500个左右的列表项
5 .综合对性能的要求,我们可以算出来第一次最大加载的数量。也就是说,一次性加载时肯定不能满足我们的需要的,他是有一个最大值的

非完整渲染长列表

1 .方法1 懒渲染:每次之渲染一部分,剩余部分等滚动到可见区域就在渲染另一部分

1 .这个比较符合加载数据的方式,就是一个websocket连接不停的接收数据
2 .

2 .方法2 可视区域渲染:只渲染可见部分,不可见部分不渲染

1 .只渲染可见区域,非可见区域完全不渲染,在滚动条滚动的时候动态更新列表项
2 .适合场景:每个数据的展现形式需要高度一致
3 .一次加载的数据量比较大1000+
4 .产品设计上,滚动条需要挂载在一个固定的区域

3 .针对自己的进行优化,主要是一次显示的数据

1 .现在默认显示的数据是最小元素的高度和显示宽度算的8个,也就是如果现在的8个元素有一个是文字是大于两行显示的,那么就会出现多渲染一个元素问题。
2 .所以可以根据每次算的高度来计算当前显示的count数目,动态调整
3 .不过这个最多也就是多显示3个或者4个元素,不知道是不是没有必要
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容