저는 오랫동안 jQuery를 사용 해왔고 저는 저의 작업을 위해 슬라이드 쇼 플러그인을 작성해 왔으며 저는 (의식적으로 100 %가 아닌) 아마 단일 체인에서 75 %를 썼습니다. 그것은 완전히 주석을 달았습니다. 그리고 각 end()
을 지정하고, 그것을 리셋하는 것 등이 있습니다. 은 jQuery 또는 DOM 로딩 속도를 줄이거 나, 실제로 속도를 높이나요?긴 jQuery 체인이 좋지 않습니까?
답변
언제나처럼 특정 코드에 따라 다릅니다. 참조 번호를 저장하는 것에 관해서는 ... 참조와 같이 여분의 수하물 (저장/복원)을 처리해야하기 때문에 실제로 긴 체인이있는 은 대 .end()
건 전화를 거는 대신 더 빠릅니다. .selector
, .context
등 아마 많은 경우에 대해 신경 쓰지 않아도 .... 그리고 이전 개체에 대한 더 많은 얽힌 참조.
비용이 많이 드는 곳은 측정하기가 더 어렵습니다 ... 실행이 아닙니다 (하지만 속도는 더 느리지 만 무한대 임에도 불구하고) ... 나중에 모든 개체를 정리하는 더 복잡한 가비지 수집입니다. 종속성 그래프 이제 훨씬 더 커졌습니다.
이제 ... 을 측정 할 수 있습니까? 차이가 있습니까? 체인이 실제로 길지 않은 경우가 아니면 일 것입니다. 대부분의 경우 걱정할 필요가없는 마이크로 최적화입니다.
심각한 성능 저하를 보이지 않는 한 은 대부분의 마이크로 최적화와 마찬가지로과 관련하여 걱정할 필요가 없습니다. 퍼포먼스에 문제가 있다면, 퍼포먼스에 참여하십시오.
+1,'.end()'사용에 대한 좋은 힌트가있다. –
+1 의존성 그래프 크기에 관한 점. – Orbling
감사! 알아 둘만한. 캐싱 등,하지만이 많은 선택기 및 코드를 그냥 일종의 잘 쇠사슬에 묶여 흘러, 그래서 나는 그걸로 갔다 생각 ... 어 오 ...이 일이 느려질 수도 있습니다. –
내 같음은 중개자가 없기 때문에 차이가 없으며 빠릅니다.
유일한 단점은 중간 변수를 여러 줄로 작성하지 않고 주석을 사용하거나 주석을 사용하거나 깔끔하게 정리 된 콜 체인을 사용하여 주석을 통해 생각하면 명확합니다.
최신 브라우저에서 수행 할 수있는 가장 비용이 많이 드는 작업 중 하나는 DOM에 액세스하고 조작하는 것입니다. 체인을 사용하면 수행해야하는 실제 조회를 최소화 할 수 있으므로 코드가 훨씬 빠릅니다. 다른 옵션은 초기 검색을 수행하여 변수에 저장하고 그 변수에서 모든 것을 수행하는 것입니다. 즉, jquery는 체인 API를 염두에두고 특별히 설계되었으므로 연결하는 것이 더 관용적입니다.
jQuery의 연결 가능성은 훌륭한 기능이라고 생각합니다. 실제로는 더 자주 사용해야합니다. 예를 들어 : - : 그 이후,
$(this).find('.funky').css('width', 30).attr('title', 'Funky Title');
$(this).fadeIn();
두 개의 jQuery'$ (this)'...'var obj = $ (this) .find ('. funky')를 만들 필요가 없습니다. css ('width', 30) .attr ('title' , '펑키 타이틀'); obj.물론 변수에 저장하면 fadeIn(); ' – Matt
하지만 대부분의 jQuery 사용자가 내 경험에 쓰는 경향이있는 것이 아니기 때문에 $()를 "남용"합니다. 그 이유는 내가 체인을 우아하게 발견 - 하나는 변수에 싸게 머물 수 있습니다 :). 게다가 당신은 코드가 내 것과 다른 smt ... ($ (this.) 대신'$ (this.) .find ('. funky')가된다. – kares
@Matt - 같은 효과가 없을 것이다. , 당신의'obj' 변수는'this'가 아닌'.find' 엘리먼트를 참조합니다 :) –
- 1. 왜 전역이 좋지 않습니까?
- 2. 함수를 jQuery 객체에 연결하는 것이 좋지 않습니까?
- 3. 왜 #define이 좋지 않습니까?
- 4. 중간 파일이 좋지 않습니까?
- 5. MediaScannerConnection.scanFile을 사용하는 것이 좋지 않습니까?
- 6. 여러 로그인 위치가 좋지 않습니까?
- 7. Java Object [] 성능이 좋지 않습니까?
- 8. WPF Matrix3D.Rotate() 함수가 좋지 않습니까?
- 9. 데이터 기반 테스트가 좋지 않습니까?
- 10. EBADF 선택 : FD가 좋지 않습니까?
- 11. 배경 스레드가 좋지 않습니까? 왜?
- 12. with 키워드는 javascript에서 좋지 않습니까?
- 13. WCF의 'by ref'인수가 좋지 않습니까?
- 14. PHP OOP : 방법 체인이
- 15. 왜 JSON을 XML에 포함시키는 것이 좋지 않습니까?
- 16. 멀티 스레드 응용 프로그램의 성능이 좋지 않습니까?
- 17. 간단한 광고에 IFRAME 사용. SEO에 좋지 않습니까?
- 18. 데이터 객체에서 RESX 국제화 사용, 좋지 않습니까?
- 19. 배열에서 변수를 추출하는 것이 성능에 좋지 않습니까?
- 20. 구성 저장소로 SQLServer가없는 Appfabric이 좋지 않습니까?
- 21. ASP.NET에서 PostgreSQL을 사용하기위한 계획 : 좋지 않습니까?
- 22. 클러스터 된 인덱스 검색 성능이 좋지 않습니까?
- 23. 스크린 세이버가 CUDA 성능에 좋지 않습니까?
- 24. 마법의 변수를 갖는 것이 좋지 않습니까?
- 25. OOP의 기본 매개 변수가 좋지 않습니까?
- 26. 안드로이드에 sqllite 데이터베이스를 열어두면 좋지 않습니까?
- 27. 데이터베이스에 XML을 저장하는 것이 "좋지"않습니까?
- 28. 하나 이상의 양식 태그가 좋지 않습니까?
- 29. Hadoop에 설명 된대로 RDBMS가 좋지 않습니까?
- 30. boost.asio 소켓의 수신/전송 기능이 좋지 않습니까?
이이'[성능]'태그
훨씬 더 (우아한)보다는 2 개 jQuery를
$(this)
객체를 만들 필요가 없습니다 주요 관심사 : –