为什么window.innerheight的性能这么差?

Ami*_*mit 2 javascript performance jsperf

我正在测试一个我的朋友注意到的测试用例。他在循环中使用window.innerheight,并且fps大幅下降。

这是我为测试它而创建的jsperf的链接http://jsperf.com/innerheight

我能提出的唯一解释是,这是一个吸气剂,并在每次调用时计算实际高度。那正确吗?我可以在此验证任何文档吗?

小智 5

这个问题是几年前发布的,但以防万一有人发现自己的方式也遇到类似的结果。

从这个博客

问题是WebKit几乎每次您使用类似于getBoundingClientRect的内容时都会重新计算dom的布局。(即使获取window.innerHeight / innerWidth也会强制进行重新计算)...应该缓存或避免所有从DOM获取任何计算尺寸的调用。

在初始化和每次调整大小时一次缓存窗口尺寸对我来说可以显着提高性能。