이전에는 DOM 조작을 포함하여 자바 스크립트에서 많은 작업을 수행했습니다. 거기에서 리플 로우/페인트 칠은 어떤 경우에는 큰 성능 문제가 될 수 있으며 일반적으로 최소로 제한되어야한다는 것을 알게되었습니다. 예를 들어 div 그룹을 추가 할 때와 같이 한 번에 모두 추가해야합니다 (DOM 외부의 div에 첨부 한 다음 첨부). 동일한 내용이 다시 칠하기 때문에 요소의 CSS 속성을 변경하여 트리거 할 수 있습니다. 비록 내가 그다지 재 페인트를 들여다 보지 못했다는 것을 인정해야 하겠지만, 나는 마지막 부분에 대해 틀릴 수도있다.SVG/SMIL 리플 로우/페인트 칠의 성능 영향?
이것은 SVG에도 적용 되는가? (가능한 일종의 DOM을 사용하는 것을 볼 때)? 그리고 다른 SVG 요소에 차이점이 있습니까? 예를 들어, 애니메이션 요소는 새로운 SVG 요소가 아니기 때문에 리플 로우를 생성하지 않지만 속성과 더 비슷합니다.
SVG에 대한 재 페인트는 확실하지 않지만 CSS/HTML과 동일한 방식으로 존재합니까? 모든 SMIL 애니메이션이 이미 프레임을 생성 한 후에 새 프레임이 렌더링 될 것이므로 "다시 그리기"와 같은 것은 아무런 차이가 없습니다.
나를 위해 이러한 것들을 명확히 할 수있는 SMIL의 내부 동작을 더 잘 이해하는 사람은 누구입니까?
"적절한 데이터가 그래픽 메모리에있는 경우 때때로 다시 칠할 필요가 없습니다." "다시 칠할 때 새로운 프레임이 렌더링 될 예정이므로 다시 그리기가 변경되지 않을 수 있습니다"라는 라인을 따라 가야합니까? 그리고 번역에 관한 부분은 JS 제어 번역 변경 사이에 문자 그대로 차이가 없다는 것을 의미하며 (SVG 태그로 변경 한 내용을 말합니까? –
Wingblade
또한 SVG 데이터가 그래픽 메모리에 저장되게하는 규칙이 있습니까? – Wingblade
UA가 무슨 일이 일어나는지 알기 때문에 SMIL을 추가로 최적화 할 수 있습니다. 때로는 속도가 빨라지 긴하지만 자세한 내용은 여기에 자세히 설명되어 있습니다. SVG 데이터는 그래픽 메모리에서 항상 끝납니다. 예를 들어 변경하면 새 레이아웃을 어셈블 할 수 있습니다. 번역을 위해서는 배경과 내용을 별도의 버퍼로 번역해야합니다. –