몇 달 전 this article은 웹 사이트 개발을 통해 수업을 실제로 피할 수 있다고 지적했습니다.데이터 속성 CSS 선택기가 클래스 선택기보다 빠릅니까?
제 질문은 클래스 선택기와 비교하여 데이터 선택기가 얼마나 효율적입니까?
간단한 예제는 인 요소와 data-component='something'
인 요소를 비교하는 것입니다.
선택기는 분할되어야하는 클래스 문자열 대 전체 값을 확인합니다. 이를 염두에두고 데이터 속성이 더 빨라야합니다.
CSS의 경우에는 클래스 선택기 또는 데이터 선택기를 사용하는 것이 더 좋습니다. 그리고 자바 스크립트 관점에서 jQuery("[data-component='something']")
은 jQuery(".something")
보다 더 효율적입니까?
내가 어떤 종류를 모르는 시도 할 수 있습니다 웹 프로그래밍은 그 기사의 궤변과 관련이있다. 그러나 나는 그것이 내가하는 일과 아무 상관이 없다고 확신한다. 또한이 기사를 자세히 읽으면 필자는 작성자가 클래스와 마찬가지로 '데이터'속성에 많은 관심을 갖고 있다고 의심한다. 그들 모두 결국 똑같은 "범죄"를 대표합니다. – Pointy
귀하의 질문과 관련하여 일부 [jsperf] (http://jsperf.com) 테스트는이 질문에 대한 답을 도울 수 있습니다. 나는'querySelectorAll()'등등을 가진 현대의 브라우저가 어느 쪽의 방법으로도 거의 어려움을 겪지 않을 것이라고 생각한다. – Pointy
데이터 애트리뷰트에 대해 생각하고 클래스를 추가하는 대신 스타일을 지정하면할수록 더 좋아집니다. 예를 들어, 검색 상자와 같은 블록 요소가 숨겨져 있다는 사실을 data-state = 'hidden'으로 나타낼 수 있습니다. 이것은 개발자가 읽을 수있는 것보다 '컴포넌트 위젯 - 헤더 터치 가능 숨겨진 둥근 - 톱'보다 쉬워 보입니다. –