"addClass" 전에 "hasClass"를 사용해야 합니까?
한 요소에 클래스가 있는지 확인하는 다음 스크립트를 발견했습니다.a
, 그렇지 않은 경우 다음을 추가합니다.
if (!$("div").hasClass("a")){
$("div").addClass("a");
}
클래스가 이미 있는 경우 jQuery가 클래스를 추가하지 않으므로 다음과 같이 변경할 수 있습니다.
$("div").addClass("a");
그러나 를 사용함으로써 성능 향상이 있습니까?hasClass
첫째, 아니면 이것은 같은 방법을 사용하는 것입니까?addClass
어쨌든, 그래서 논리를 복제하는 것입니까?
그.hasClass()
jQuery도 항상 내부에서 체크하기 때문에 체크는 유용하지 않습니다..addClass()
. 그냥 추가 작업일 뿐입니다.
사용 시 클래스가 존재하는지 확인하는 것은 소스 코드 https://github.com/jquery/jquery/blob/master/src/attributes/classes.js#L38-L45 에서 확인할 수 있습니다.addClass
.
그래서 사용할 이유가 없습니다..hasClass()
이 경우에는..(요소에 클래스가 없는 경우에는 더 많은 작업을 수행할 수 있습니다.)
이를 통해 성능을 향상시킬 수 있습니다..hasClass()
제한된 테스트에서: http://jsperf.com/jquery-hasclass-vs-addclass-and-removeclass
단, 독립된 상태에서도.removeClass()
Chrome에서 몇 배 더 느린 속도로 보고되며, 초당 약 70,000번의 작업이 수행됩니다.
언급URL : https://stackoverflow.com/questions/13358887/should-i-use-hasclass-before-addclass
'programing' 카테고리의 다른 글
fs.readFileSync는 파일 상대적이지 않습니까?Node.js (0) | 2023.09.24 |
---|---|
매개 변수에 공백이 있을 때 파워셸에서 msdeploy를 어떻게 부르나요? (0) | 2023.09.24 |
C 연산자 /\ 및 \/가 수행한 작업은 무엇입니까? (0) | 2023.09.24 |
Xcode가 "응용 프로그램 업로드 중"에 고착됨 (0) | 2023.09.24 |
Angular에서 window.location 또는 window.open을 설정합니다.JS는 IE 11에서 "액세스 거부"를 제공합니다. (0) | 2023.09.24 |