Я только что создал страницу тестирования производительности селектора jquery.
http://guhelouis.github.com/jquery_performance/
Есть 10000 делений с именем класса от .div-cl-1 до .div-cl-10000. И я пытаюсь получить .div-cl-9999 с 2 различными селекторами:
- $ ( 'div.div-сл-9999)
- $ (». Div-сл-9999' )
Как вы можете догадаться, первый будет быстрее второго. Но, пожалуйста, посмотрите результат в http://guhelouis.github.com/jquery_performance/ (нажмите кнопку Run it , извините, но она немного медленная), первый результат всегда будет первым медленнее, чем второй .
и если вы измените порядок выполнения, значит:
- $ (». Div-сл-9999' )
- $ ( 'div.div-сл-9999)
Результат снова нормализуется.
Это какая-то «индексация» внутри нового механизма выбора jquery?
PS: эти странные результаты возникают только при использовании jquery 1.3+ (время, когда JQuery начал использовать Sizzle).