JavaScript与jQuery常被错误地混为一谈。
JavaScript动画很快,是jQuery让它慢了下来。尽管jQuery非常强大,但它并未被设计成高性能的动画引擎。它没有避免“布局颠簸”的机制,这使
浏览器在动画处理过程中,过分忙于布局处理的工作。
另外,由于jQuery的代码库除了实现动画以外还有许多其他目的,因此它的内存消耗会在
浏览器内触发垃圾回收,导致动画在不可预知的情况下卡壳。最后,由于jQuery团队奉行一个崇高的追求,那就是帮助新手避免用坏代码毁了他们的UI,因此jQuery放弃了被经常推荐的做法,拒不使用requestAnimationFrame()函数,但另一方面浏览器竞相支持该函数,因为它可以为网络动画大幅提升帧率(frame rate)。
一些彻底绕开jQuery的
JavaScript动画库通过与页面的顺畅交互而表现出非凡的性能。其中之一是著名的动画库,也是本书自始至终使用的Velocity.js。这是个轻量级的库,但是功能却异常丰富。另外,它与jQuery的动画语法类似,能够大幅降低学习曲线。
有关性能的问题,我们会在第7章中深入探讨。通过学习浏览器渲染性能的微妙差异,你能够打下坚实的基础,为所有的浏览器和设备创建可靠的动画效果,不论这些浏览器和设备的处理能力如何。