The Art of Computer Programming (Knuth)
Programming Pearls (Bentley)
Data Structures and Algorithms (Aho, Hopcroft, Ullman)
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.
Generally, all APIs that synchronously provide layout metrics will trigger forced reflow / layout. Read on for additional cases and details.
elem.offsetLeft
, elem.offsetTop
, elem.offsetWidth
, elem.offsetHeight
, elem.offsetParent
Picking the right architecture = Picking the right battles + Managing trade-offs