html商品列表数据渲染,性能优化小册 - 渲染十万条数据:基于 IntersectionObserver 的虚拟列表...

本文介绍了虚拟列表的概念和实现原理,通过 IntersectionObserver 监听元素与视口的交叉状态,优化长列表渲染性能。文中详细展示了如何在不依赖框架的情况下,使用 JavaScript 生成和渲染数据,以及如何利用 IntersectionObserver 实现动态加载,提高网页响应速度。
摘要由CSDN通过智能技术生成

技术不局限于框架,相同的原理只是实现方式略有不同。

a54672aaa00713922c3994bc44950d33.png

前置

1. 什么是虚拟列表?

首先,虚拟列表只是一个概念,本人对虚拟列表这个表述不置可否。

虚拟列表是对于列表形态数据展示的一种按需渲染,是对长列表渲染的一种优化。

虚拟列表不会一次性完整地渲染长列表,而是按需显示的一种方案,以提高无限滚动的性能。

2. 虚拟列表的实现原理?

根据容器元素的高度 clientHeight 以及列表项元素的高度 offsetHeight 来显示长列表数据中的某一个部分,而不是去完整地渲染整个长列表。

346278e236aedb1be870b47a045bccda.png

实现一个虚拟列表需要:

得知容器元素的高度 clientHeight

得知列表项元素的高度 offsetHeight

计算可视区域应该渲染的列表项的个数 count = clientHeight / offsetHeight

计算可视区域数据渲染的起始位置 start

计算可视区域数据渲染的结束位置 end

对完整长列表数据进行截断 sliceList = dataList.slice(start, e

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值