前端面试会问到的数据处理问题

本文针对前端处理大量数据时如何优化用户体验进行了详细探讨。提出了使用分页、requestAnimationFrame、createDocumentFragment、延迟加载及Worker线程等技术手段,旨在减少DOM操作频率,提升渲染效率。
摘要由CSDN通过智能技术生成

最近一直在参加招聘,寒冬莅临!到现在都没找到工作,我可太菜了!!!
说回正题,最近面试的时候被问到“前端面对大量的数据,要怎么处理,能优化用户体验?”,对于这个问题,一次没答上来的我决定来写一篇关于这个问题的博客。(没能第一次就来寻找答案应该是我辣鸡的原因之一了!!!)

面对后端返回的几十万几百万的数据,该如何处理?

使用setTimeout进行分页

对于大量的数据,进行分页操作,这样每个页面只需要对有限的数据进行渲染,每次渲染一个页面就ok了。

使用requestAnimationFrame

在渲染页面的时候,我们可以使用requestAnimationFrame来代替setTimeout,这样可以减少reflow次数,提高性能。requestAnimationFrame方法告诉浏览器您希望执行动画,并请求浏览器调用指定函数在下一次重绘之前更新动画。该方法将回调作为要在重绘之前调用的参数。

使用 createDocumentFragment()碎片节点

将数据分成一段一段执行,createDocumentFragment()创建一个虚拟节点对象,将一部分数据先添加到DocumentFragment中,再统一将DocumentFragment添加到页面,会减少页面渲染DOM的次数,效率会明显提升

延迟加载

根据用户视口的位置,来选择是否加载渲染数据。

使用Worker,开启子线程

因为js是单线程运行的,在遇到一些需要处理大量数据的js时,可能会阻塞页面的加载,造成页面的假死。这时我们可以使用worker来开辟一个独立于主线程的子线程来进行哪些大量运算。这样就不会造成页面卡死。也说明 worker可以用来解决大量运算是造成页面卡死的问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值