728x90
반응형

Front/JS & jQuery 438

[js] requestAnimationFrame()의 내부 동작 원리

✅ requestAnimationFrame()의 내부 동작 원리📌 동작 순서JavaScript가 requestAnimationFrame(callback)을 호출하면,브라우저는 다음 프레임을 렌더링하기 직전(callback을 큐에 넣기 전) 타이밍에,callback을 실행합니다.브라우저는 보통 1초에 60번 화면을 그리므로(60fps), 대략 16.67ms마다 한 번씩 callback이 실행됩니다.브라우저의 렌더링 루프와 동기화되어 DOM 변화나 애니메이션을 가장 자연스럽고 효율적으로 처리할 수 있게 합니다.🧠 언제 실행되는가?화면이 활성 상태일 때만 실행됨→ 탭이 비활성화되면 일시 중지됨 → CPU 낭비 X프레임 스케줄에 따라 자동으로 실행 타이밍이 조절됨 → setTimeout보다 정확한 타이밍🧪..

Front/JS & jQuery 2025.06.20

[js] requestAnimationFrame()

requestAnimationFrame()은 브라우저가 다음 화면을 그리기 직전에 실행할 콜백을 예약하는 함수입니다.주로 애니메이션 처리나 렌더링 타이밍을 정확하게 맞추고 싶을 때 사용합니다. ✅ 기본 사용법js requestAnimationFrame(() => { // 브라우저가 다음 repaint 전에 실행할 코드 // DOM이 렌더링된 이후에 안전하게 실행됨});🧠 개념 요약항목설명실행 시점브라우저가 다음 프레임을 그리기 직전호출 빈도일반적으로 초당 60회 (60fps)주 목적부드러운 애니메이션 / 렌더링 이후 DOM 조작이점setTimeout보다 부드럽고 효율적이며, 렌더링 타이밍 보장 🎯 언제 사용하나?DOM 변경 직후 후속 처리예: innerHTML 또는 .append() 후 특정 요소..

Front/JS & jQuery 2025.06.19

[js] requestAnimationFrame 함수

requestAnimationFrame()은 브라우저가 다음 화면을 그리기 직전에 실행할 콜백을 예약하는 함수입니다.주로 애니메이션 처리나 렌더링 타이밍을 정확하게 맞추고 싶을 때 사용합니다. ✅ 기본 사용법js requestAnimationFrame(() => { // 브라우저가 다음 repaint 전에 실행할 코드 // DOM이 렌더링된 이후에 안전하게 실행됨});🧠 개념 요약항목설명실행 시점브라우저가 다음 프레임을 그리기 직전호출 빈도일반적으로 초당 60회 (60fps)주 목적부드러운 애니메이션 / 렌더링 이후 DOM 조작이점setTimeout보다 부드럽고 효율적이며, 렌더링 타이밍 보장 🎯 언제 사용하나?DOM 변경 직후 후속 처리예: innerHTML 또는 .append() 후 특정 요소..

Front/JS & jQuery 2025.06.18

[js][datatables] Scroller 플러그인

DataTables의 Scroller 플러그인은 대량의 데이터를 처리할 때 성능을 향상시키기 위해 사용되는가상 스크롤(Virtual Scrolling) 기능입니다.즉, 수천~수만 건의 데이터가 있어도 브라우저에 실제로 렌더링되는 행의 수를 제한하여 빠르게 스크롤할 수 있게 해줍니다. 🔍 Scroller 플러그인 핵심 특징항목설명목적수천~수만 건의 대용량 데이터를 효율적으로 렌더링렌더링 방식화면에 보이는 영역만 실제 DOM에 표시 (Virtual rendering)스크롤 바 생성scrollY 높이를 기준으로 세로 스크롤 생성성능 향상전체 데이터를 클라이언트에 불러오더라도 실제 렌더링은 필요한 부분만 처리 ✅ 사용 방법1. HTMLhtml복사편집 번호 이름 직책 ..

Front/JS & jQuery 2025.05.31

[js][ECharts] 데이터 명이 같아도 다른 데이터이면 다른색으로 표시 (파이차트)

ECharts 파이 차트에서 이름(label)이 같은 경우 같은 색상으로 표시되는 이유는,ECharts가 내부적으로 name 값을 기준으로 색상을 매핑하기 때문입니다.즉, data: [{name: 'A', value: 100}, {name: 'A', value: 200}] 처럼 name이 동일하면 같은 색상을 자동으로 지정합니다. ✅ 해결 방법: name을 고유하게 바꾸고, label에서는 다시 원래 이름으로 보이게 설정const rawData = [ { name: 'A', value: 100 }, { name: 'A', value: 200 }];// 실제 표시할 이름은 label에서 처리하고,// 내부 name은 유일하게 만들어줍니다.const dataList = rawData.map((item, ..

Front/JS & jQuery 2025.05.28
728x90
반응형