What forces layout/reflow. The comprehensive list.
jank jank jank. What if?
JavaScript had native debounce and throttle functions
browsers automagically handled known jank JS and CSS
remove functions that are performance killers, i.e. getComputedStyle
JavaScript Triggers
All of the below properties or methods, when requested/called in JavaScript, will trigger the browser to synchronously calculate the style and layout*. This is also called reflow or layout thrashing, and is common performance bottleneck.
CSS Triggers
CSS Triggers is a related resource and all about what operations are required to happen in the browser lifecycle as a result of setting/changing a given CSS value. It's a great resource. The above list, however, are all about what forces the purple/green/darkgreen circles synchronously from JavaScript.
More on forced layout
Avoiding layout thrashing — Web Fundamentals
Fixing Layout thrashing in the real world | Matt Andrews
Timeline demo: Diagnosing forced synchronous layouts - Google Chrome
Preventing 'layout thrashing' | Wilson Page
wilsonpage/fastdom
Rendering: repaint, reflow/relayout, restyle / Stoyan
We spent a week making Trello boards load extremely fast. Here’s how we did it. - Fog Creek Blog
Minimizing browser reflow | PageSpeed Insights | Google Developers
Optimizing Web Content in UIWebViews and Websites on iOS
Accelerated Rendering in Chrome
web performance for the curious
Jank Free








