渲染 10w 条数据
题目
后端返回 10w 条数据,该如何渲染?
设计是否合理?
前端很少会有一次性渲染 10w 条数据的需求,而且如果直接渲染会非常卡顿。
你可以反问面试官:这是什么应用场景。然后判断这个技术方案是否合理。
例如,就一个普通的新闻列表,后端一次性给出 10w 条数据是明显设计不合理的。应该分页给出。
你能正常的反问、沟通、给出自己合理的建议,这本身就是加分项。
当然,面试官话语权更大,他可能说:对,不合理,但就非得这样,该怎么办?
自定义中间层
虚拟列表
基本原理
- 只渲染可视区域 DOM
- 其他隐藏区域不渲染,只用一个
<div>
撑开高度 - 监听容器滚动,随时创建和销毁 DOM
虚拟列表实现比较复杂,特别是在结合异步 ajax 加载。明白实现原理,实际项目可用第三方 lib
答案
- 沟通需求和场景,给出自己合理的设计建议
- 虚拟列表
扩展
有时候面试官会出这种刁钻的问题来故意“难为”候选人,把自己扮演成后端角色,看候选人是否好欺负。
如果此时你顺从面试官的问题继续埋头苦思,那就错了。应该适当的追问、沟通、提出问题、给出建议,这是面试官想要看到的效果。
实际工作中,前端和后端、服务端的人合作,那面会遇到各种设计沟通的问题。看你是否有这种实际工作经验。