Skip to content

Instantly share code, notes, and snippets.

View ekarulf's full-sized avatar

Erik Karulf ekarulf

View GitHub Profile
@paulirish
paulirish / what-forces-layout.md
Last active May 5, 2025 08:05
What forces layout/reflow. The comprehensive list.

What forces layout / reflow

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.

Element APIs

Getting box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
@ekarulf
ekarulf / etree_import.py
Created November 10, 2010 09:39
Import ElementTree with preference to faster libraries
def etree(packages=('lxml.etree', 'xml.etree.cElementTree',
'cElementTree', 'elementtree.ElementTree')):
for pkg_name in packages:
try:
pkg = __import__(pkg_name)
except ImportError:
continue
else:
for subpkg_name in pkg_name.split('.')[1:]: # skip the base package
pkg = getattr(pkg, subpkg_name)