JQUERY время сложность - PullRequest
1 голос
/ 24 апреля 2011

Я попробовал следующий код для обновления значения элемента:

первый:

$(this).parent().prev().children(':selected').val();

тогда: Я пытался с помощью следующего кода:

$(this).parent().prev().children('.pgs').val();//`.pgs` is class of `select` drop down

последний:

Я также попробовал следующий код:

$(this).parent().prev().find('.pgs').val();

Здесь первый фрагмент кода занял немного больше времени, чем последние два фрагмента. Почему первый фрагмент показал такое поведение? Как узнать больше о сложности времени выполнения jQuery?

1 Ответ

2 голосов
/ 24 апреля 2011

:selected не является селектором CSS, который понимает браузер, он специально реализован с помощью Sizzle (использует механизм выбора jQuery), поэтому он проходит через очень другой путь к коду.

.pgs, однако, является абсолютно допустимым селектором CSS, который браузер может сильно оптимизировать, поскольку jQuery может использовать собственные методы выбора cSS, например querySelector() и querySelectorAll().

Что касается дальнейших исследований, у меня нет для вас большого ресурса.Тем не менее, общее правило: если это селектор jQuery , но не действительный селектор CSS , это будет медленнее, поскольку он не может использовать несколько путей собственного кода в браузере.

...