Skip to content

Instantly share code, notes, and snippets.

View ZouYouShun's full-sized avatar
🏠
Working from home

Alan Zou ZouYouShun

🏠
Working from home
View GitHub Profile
@ZouYouShun
ZouYouShun / createExternalExecController.ts
Last active May 2, 2024 07:23
createExternalExecController
import {
filter,
firstValueFrom,
fromEvent,
map,
merge,
share,
tap,
timer,
} from 'rxjs';
// eslint-disable-next-line @typescript-eslint/ban-types
export type NotFunction<T> = T extends Function ? never : T;
@ZouYouShun
ZouYouShun / what-forces-layout.md
Created January 9, 2019 15:02 — forked from paulirish/what-forces-layout.md
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.

Element

Box metrics
  • elem.offsetLeft, elem.offsetTop, elem.offsetWidth, elem.offsetHeight, elem.offsetParent
  • elem.clientLeft, elem.clientTop, elem.clientWidth, elem.clientHeight
  • elem.getClientRects(), elem.getBoundingClientRect()