Rev. 2.73

chart.png

Sly는 Harald Kirschner씨에 의해 만들어진 최신 DOM 선택자 엔진입니다. 고작 3kb크기(minified and gzipped)의 스텐드얼론(독립형)으로 실행되는 이 선택자 엔진은 위 차트(slickspeed 테스트 결과) 에서 알 수 있듯이 성능이 매우 탁월합니다. 최신 브라우저들이 지원하는 기능을 셀렉터에 최적화하고 강력한 자바스크립트 일치 알고리즘으로 신속하고 정확한 검색이 가능하며, 필터링을 위한 유틸리티 메서드도 제공합니다. 코드는 MooTools의 철학을 따랐으며, 엄격한 표준을 준수한다고 하네요.

// Finds all odd rows in all tables
var rows = Sly.search('table td:odd');

// Finds all links with class "internal" and an attribute "href" starting with "#".
var links = Sly.search('a.internal[href^="#"]');

// Another notation is also possible, since Sly acts as a constructor
var snippets = Sly('pre.highlight.javascript > code').search();

// features is just one element, lists has all list items are siblings of features
var features = Sly.find('#features');
var lists = Sly.search('~ ul', body);

Comments

Got something to add? You can just leave a comment.

  • 오, 멋지네요=_=b
    jQuery가 'div, p, a'패턴에서 유독 느리군요. 오페라에선 sly에 비해 50배 가량 지체되기도 하네요. ㄷㄷ

    reply edit

  • pRix pRix

    jQuery 의 div, p, a 같은 복수지정의 경우 실제 DOMtree 의 순서에 맞도록 재정렬해서 반환하기 때문입니다.
    예를들어 domQuery나 Prototype으로 div, p를 실행시 무조건 첫뻔째 노드는 div가 되겠지만
    Sizzle에서는 실제 문서상에서의 순서를 기준으로 재정렬되어 첫번째 노드로 p가 올수도 div가 올수도 있죠 ㅎㅎ

    reply edit

  • 루핑을 줄여서 성능을 올린것으로 보면 되겠군요.

    reply edit

  • pRix pRix

    루핑을 줄여서 성능을 높였다기보단 해야할 처리를 안해서 속도가 빠르다고 봐야하지 않나 생각합니다 ^^;
    Sizzle은 querySelectorAll과 동일한 결과를 산출하도록 노력하는 것 같네요.

    reply edit

Your Reaction Time!

captcha

avatar