数据量大导致传输速度慢解决方案——请求分片

本文针对前端请求大量数据导致的加载速度慢问题,提出了请求分片的解决方案。通过先加载50条数据,然后监听滚动事件,在用户滚动到底部时请求下一批数据,以此提高页面渲染效率和用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

在开发过程中,遇到要请求几千行数据的需求,因为前端部分已经使用了VirtualList虚拟列表只渲染当前可视区域的视图,非可视区域的视图在用户滚动到可视区域再渲染:
在这里插入图片描述
但仍不能解决数据加载缓慢问题。原因是数据量本身太大,导致传输的速度过慢,所以渲染到页面上的速度也很慢。


解决方案

请求分片的方式,先加载前50条数据,监听滑动到底部的事件,当列表下拉到底部的时候,再去请求后50条数据。这么做每次只请求50条数据,传输速度就会很快。

前端具体实现如下:

function PoemList() {
   
  ...
  // 设置请求偏移量
  const [offset, setOffset] = useState<number>(0); 

  useEffect(() => {
   
	 ...
	 // 第一次请求
      getPoemList(category, offset)
        .then((res) => {
   
          setList(res);
        })
        .catch((err) => {
   
          console.error(err);
        });
    }
  }, []);
	
  // 监听滑动到底部
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值