테스트 환경
으아아아제가 이런 질문을 드리는 이유는 웹스톰의 경고 메시지 때문입니다.
으아아아위 코드는 웹스톰 종료 시 경고를 보고하며, 경고 정보는 다음과 같습니다.
으아아아오류 메시지에 따르면 제가 생각해낸 해결책은 동일한 선택기로 얻은 JS 객체를 변수를 사용하여 바꾸는 것입니다
으아아아물론 이런 식으로는 경고가 없습니다.
코드에 실행 효율성이 언급되어 있으므로 이 두 코드의 실행 시간도 테스트했습니다.
동일한 작업을 10,000번 실행하고 세 번 테스트한 첫 번째 코드의 총 실행 시간은 각각 1372, 1339, 1423이었습니다.
두 번째 코드 전체 실행 시간은 각각 1407, 1277, 1403입니다. 테스트 결과 경고는 없었지만 실행 효율성은 향상되지 않았습니다.
다음 코드에 대한 테스트를 추가하세요
으아아아
다른 답변에서 잘못된 점을 지적했습니다.
한 가지 말씀드리자면, 효율성이 크게 향상되지 않는 이유는 실제로 이러한 하위 수준 오류의 대부분을 선언하면 최적화할 수 있기 때문입니다. 변수를 반복적으로 선언하면 1억 번 선언하면 1번으로 최적화되므로 실행에는 아무런 차이가 없습니다.
JS의 성능에 실제로 영향을 미칠 수 있는 것은 그렇게 작은 점이 아니지만, 그렇다고 무시할 수 있다는 의미는 아닙니다. 그 작은 성능 향상보다 코딩 사고력의 향상이 훨씬 더 중요하기 때문입니다.
var result_logo=$('#result_logo')는 루프 본문 외부에 작성해야 합니다. js 코드를 작성할 때 변경되지 않는 jquery 개체를 캐시해 보세요.
프로젝트 코드에 반복되는 작성 방법이 많다는 의미는 아닙니다. 최적의 글쓰기 방법입니다
이런 경우:
으아악최적화될 수 있습니다. 하지만 작성하는 변수는 항상 jquery 객체입니다. 변수와 $()를 사용하는 것은 동일합니다
최신 브라우저는 모두 귀하를 위해 최적화되어 있습니다. 효율성을 실제로 테스트하려면 IE8 9와 10을 사용하여 차이가 큰지 확인할 수 있습니다. 게다가 선택자는 id 선택자인데, 클래스 선택자로 바꾸면 효율성 비교가 나옵니다.
인쇄하는 내용은 작동할 때마다 동일하며 Chrome의 캐싱 메커니즘이 최적화되었습니다
오류의 원인은 다음 문장에 있는 것 같습니다.
warns about duplicated selectors which could be cached.
, 루프 외부에서 변수 선언을 작성해 보세요루프 본문 내에서 레이블을 가져오고 변수를 선언하는 코드를 작성했지만 확실히 개선되지는 않았습니다.
으아악이론적으로 이렇게 작성하면 상황이 조금 개선될 수 있지만 테스트 방법은 전혀 과학적이지 않으며 코드의 효율성을 완전히 반영할 수 없습니다. 코드 효율성에 의존하는 것 외에도 네트워크 속도와도 관련이 있어 반영된 결과가 정확하지 않습니다.