uniapp获取节点边界信息,可以通过getBoundingClientRect和fields方法实现。但是实测发现,手机端通过这两个方法读取节点边界信息,每次的耗时,可以达到90ms~130ms(MIX2测试数据);如果是RedMI 5,甚至可能多达200ms~250ms。
这在大多数场景下,是可以接受的,没有任何问题。
但在这在某些特定场景下,比如需要连续读取3~5次时,延迟就可能累计达到1秒。这个耗时量太大,无法接受。
请问官方和社区的朋友们,对于这个问题,有优化的办法吗?急!
----------补充说明-----------
特别说明一下,以免引起误解。getBoundingClientRect和fields本身是没有问题的,没有bug。只是由于CPU性能的差异,它在PC端的耗时很短,约10ms;而在手机端的耗时较长,可能达到90~130ms。
本贴不是找bug,而是想请教解决/优化这个问题(在手机端耗时过大)的办法。先谢谢大家了!
1 个回复
DCloud_UNI_FXY
连续请求getBoundingClientRect是要实现什么功能?是否可以通过uni.createIntersectionObserver变通实现?
https://uniapp.dcloud.io/api/ui/intersection-observer?id=createintersectionobserver