for beginner
User Experience
무조건 빠른 것이 아닌,
사용자에게 끊기는 느낌이 없도록
부드러운,
...
측정할 수 없다면,
개선할 수 없다.
- 피터드러커
esponse
입력 지연 시간이 100ms 미만
nimation
각 프레임 작업의 완료 시간은 16ms 미만
dle
oad
메인 스레드 JS 작업이 50ms 이하
페이지가 1000ms 이내에 사용할 준비
웹 앱의 품질을 개선하는 오픈 소스 자동화 도구
Identify and fix common problems that affect your site's performance, accessibility, and user experience.
1. Connection
2. TTFB (Time To First Bytes) 이후 Single Thread에서 렌더링 시작
2900+ star react-lazyload
The Intersection Observer API provides a way to asynchronously observe changes in the intersection of a target element with an ancestor element or with a top-level document's viewport.
polyfill : https://github.com/w3c/IntersectionObserver
Code
lighthouse에서는 viewport 기준 (x + 100, y + 200) 으로 판단
callback 발생 조율
callback 발생 시점
viewport 판단 기준
IntersectionObserver + Custom Image Element
IntersectionObserver + Initialize component
`data:` 스킴이 접두어로 붙은 URL은
작은 파일을 문서 내에 인라인으로 삽입할 수 있도록 해줍니다.
<img src="https://www.test.com" alt="test"/>
<img src="data:image/png;base64,...==" alt="test" />
디바이스의 pixel ratio 크기에 맞는 이미지 사용
컴퓨팅에서 일부 기능을 CPU에서 구성하는 소프트웨어 방속보다 더 빠르게 수행할 수 있는 하드웨어의 사용
(여기서 말하는 하드웨어는 GPU)
CPU보다 GPU가 잘하는 일을 GPU에게 위임하는 것.
throttling...?
prevetDefault를 호출하지 않을 것임.
{ passive: true }