찾다
웹 프론트엔드CSS 튜토리얼CSS 다시 그리기 및 재배열의 예

이 글은 주로 CSS reraw 및 reflowing 방법에 대한 관련 정보를 소개합니다. 편집자는 이것이 꽤 좋다고 생각하므로, 여러분에게 도움이 되기를 바라며 지금 공유하겠습니다.

브라우저 로딩 페이지의 원리

일반적으로 문서가 처음 로드될 때 브라우저 엔진은 HTML 문서를 구문 분석하여 DOM 트리를 구축한 다음 DOM 요소의 기하학적 속성을 기반으로 렌더링을 위한 트리를 구축합니다. 렌더링 트리의 각 노드에는 상자 모델과 유사한 크기 및 여백과 같은 속성이 있습니다(숨겨진 요소는 표시할 필요가 없으므로 렌더링 트리에는 DOM 트리의 숨겨진 요소가 포함되지 않습니다). 렌더링 트리가 구성되면 브라우저는 요소를 올바른 위치에 배치한 다음 렌더링 트리 노드의 스타일 속성을 기반으로 페이지를 그릴 수 있습니다. 브라우저의 흐름 레이아웃으로 인해 렌더링 트리 계산은 일반적으로 한 번만 통과하면 됩니다. 테이블과 내부 요소를 제외하고 렌더링 트리에서 노드의 속성을 결정하려면 여러 계산이 필요할 수 있으며 이는 일반적으로 동등한 요소에 비해 3배의 시간이 걸립니다. 이것이 레이아웃에 테이블을 사용하지 말아야 하는 이유 중 하나입니다.

Redraw

다시 그리기는 가시성, 윤곽선, 배경색 등의 속성 변경과 같이 요소 모양의 변경으로 인해 발생하는 브라우저 동작입니다. 브라우저는 새 속성을 기반으로 요소를 다시 그려 요소에 새로운 모양을 부여합니다. 다시 그리기는 다시 레이아웃을 가져오지 않으며 반드시 리플로우를 동반하지도 않습니다. 브라우저는 다시 그리고 리플로우할 때 높은 성능 비용을 지불합니다.

재배열

재배치는 더욱 분명한 변화로, 렌더링 트리를 다시 계산해야 한다는 의미로 이해될 수 있습니다. 다음은 리플로우를 트리거하는 일반적인 작업입니다.

  1. DOM 요소의 기하학 속성 변경.

  2. DOM 트리의 구조적 변화.

예: 추가, 삭제, 노드 이동 등

특정 속성을 가져옵니다.

일부 속성을 가져올 때 브라우저는 올바른 값을 얻기 위해 리플로우도 트리거합니다. 이로 인해 브라우저의 최적화가 효과적이지 않게 됩니다. 이러한 속성에는 offsetTop, offsetLeft, offsetWidth, offsetHeight, scrollTop, scrollLeft, scrollWidth, scrollHeight, clientTop, clientLeft, clientWidth, clientHeight, getCompulatedStyle()(IE의 currentStyle)이 포함됩니다. 따라서 이러한 값은 여러 번 사용될 때 캐시되어야 합니다.

또한 요소의 일부 스타일 변경, 브라우저 창 크기 조정, 스크롤 막대 표시 등도 리플로우를 트리거합니다.

재정렬 횟수 및 재정렬 효과 범위 줄이기

1. 스타일 속성을 변경하는 여러 작업을 하나의 작업으로 결합합니다. 예를 들어


JS:
    var changep = document.getElementById(‘changep’);
    changep.style.color = ‘#093′;
    changep.style.background = ‘#eee';
    changep.style.height = ‘200px';
    可以合并为:
CSS:
    p.changep {
        background: #eee;
        color: #093;
        height: 200px;
    }
JS:
    document.getElementById(‘changep’).className = ‘changep';

2. 여러 번 재정렬해야 하는 요소의 위치 속성을 절대 또는 고정으로 설정하면 이 요소가 문서 흐름에서 벗어나 변경 사항이 다른 요소에 영향을 미치지 않습니다. 예를 들어 애니메이션 효과가 있는 요소는 절대 위치로 설정하는 것이 가장 좋습니다.

3. 메모리에서 노드를 여러 번 작동시킨 후 완료 후 문서에 추가합니다. 예를 들어 테이블 데이터를 비동기적으로 가져와 페이지에 렌더링하려고 합니다. 루프에 각 행을 추가하는 대신 먼저 데이터를 얻은 다음 메모리에 전체 테이블의 HTML 조각을 작성한 다음 문서에 한 번에 추가할 수 있습니다.

4. 표시 속성이 없음인 요소는 렌더링 트리에 없으므로 숨겨진 요소에 대한 작업으로 인해 다른 요소가 재배열되지 않습니다. 요소에 대해 복잡한 작업을 수행하려는 경우 먼저 요소를 숨긴 다음 작업이 완료된 후 표시할 수 있습니다. 숨기고 표시할 때 리플로우가 2번만 트리거됩니다.

5. 브라우저 리플로우를 유발하는 속성 값을 자주 검색해야 하는 경우 이를 변수에 캐시해야 합니다.

관련 권장 사항:

페이지 다시 그리기 및 리플로우를 위한 최적화 방법

고성능 WEB 개발 페이지 프리젠테이션, 다시 그리기, 리플로우.

js는 썸네일을 생성한 다음 이를 업로드하고 canvas_javascript 기술을 사용하여 다시 그립니다

위 내용은 CSS 다시 그리기 및 재배열의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
두 개의 이미지와 API : 제품을 다시 칠하는 데 필요한 모든 것두 개의 이미지와 API : 제품을 다시 칠하는 데 필요한 모든 것Apr 15, 2025 am 11:27 AM

최근에 제품 이미지의 색상을 동적으로 업데이트하는 솔루션을 찾았습니다. 따라서 제품 중 하나만 사용하여 다른 방식으로 색칠 할 수 있습니다.

주간 플랫폼 뉴스 : 제 3 자 코드, 수동 혼합 콘텐츠, 가장 느린 연결이있는 국가의 영향주간 플랫폼 뉴스 : 제 3 자 코드, 수동 혼합 콘텐츠, 가장 느린 연결이있는 국가의 영향Apr 15, 2025 am 11:19 AM

이번 주에 라운드 업, Lighthouse는 타사 스크립트에 빛을 비추고 불안한 자원이 안전한 사이트에서 차단되고 많은 국가 연결 속도가 차단됩니다.

직접 비자 스크립트 기반 분석을 호스팅하는 옵션직접 비자 스크립트 기반 분석을 호스팅하는 옵션Apr 15, 2025 am 11:09 AM

사이트에서 방문자 및 사용 데이터를 추적하는 데 도움이되는 분석 플랫폼이 많이 있습니다. 아마도 널리 사용되는 Google 웹 로그 분석

그것은 모두 헤드에있는 모든 것 : React Helmet과 함께 React 전원 사이트의 문서 헤드 관리그것은 모두 헤드에있는 모든 것 : React Helmet과 함께 React 전원 사이트의 문서 헤드 관리Apr 15, 2025 am 11:01 AM

문서 헤드는 웹 사이트에서 가장 화려한 부분이 아닐 수도 있지만 웹 사이트의 성공에 중요합니다.

JavaScript의 Super () 란 무엇입니까?JavaScript의 Super () 란 무엇입니까?Apr 15, 2025 am 10:59 AM

Super ()?를 호출하는 JavaScript를 볼 때 어떤 일이 발생 하는가. 아동 클래스에서는 Super ()를 사용하여 부모의 생성자와 Super를 호출합니다. 그것의 접근

다양한 유형의 기본 JavaScript 팝업 비교다양한 유형의 기본 JavaScript 팝업 비교Apr 15, 2025 am 10:48 AM

JavaScript에는 사용자 상호 작용을위한 특수 UI를 표시하는 다양한 내장 팝업 API가 있습니다. 뛰어나게:

액세스 가능한 웹 사이트를 구축하기가 어려운 이유는 무엇입니까?액세스 가능한 웹 사이트를 구축하기가 어려운 이유는 무엇입니까?Apr 15, 2025 am 10:45 AM

나는 다른 날에 많은 회사들이 액세스 가능한 웹 사이트를 만드는 데 어려움을 겪고있는 이유에 대해 다른 프론트 엔드 사람들과 대화를 나누고있었습니다. 액세스 가능한 웹 사이트가 왜 그렇게 어려운가

'숨겨진'속성은 눈에 띄게 약합니다'숨겨진'속성은 눈에 띄게 약합니다Apr 15, 2025 am 10:43 AM

당신이해야 할 일을 정확하게 수행하는 HTML 속성이 있습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
4 몇 주 전By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25 : Myrise에서 모든 것을 잠금 해제하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

SecList

SecList

SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

DVWA

DVWA

DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

mPDF

mPDF

mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.