Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

第 17 题:(开放题)接上一题如何尽可能流畅的实现这2万小球在浏览器中,以直线运动的动效显示出来 #17

Open
airuikun opened this issue Apr 14, 2019 · 1 comment

Comments

@airuikun
Copy link
Owner

airuikun commented Apr 14, 2019

这题考察对大数据的动画显示优化,当然方法有很多种。

但是你有没有用到浏览器的高级api?

你还有没有用到浏览器的专门针对动画的引擎?

或者你对3D的实践和优化,都可以给面试官展示出来。

提供几个思路:

  • 使用GPU硬件加速
  • 使用webGL
  • 使用assembly辅助计算,然后在浏览器端控制动画帧频
  • 用web worker实现javascript多线程,分块处理小球
  • 用单链表树算法和携程机制,实现任务动态分割和任务暂停、恢复、回滚,动态渲染和处理小球
@qile222
Copy link

qile222 commented Apr 15, 2019

这个问题的核心是渲染问题而不是计算问题
如果 2w 个球不用同时显示出来,可以在遍历的时候根据 view-port 进行渲染,view-port 外的球不用渲染
如果需要同时显示,可以考虑多线程渲染(不知道 worker 支不支持),发挥多核的优势,将 2w 个球放到不同的线程的 layout 里面去渲染

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants