KittyJS 0.3
posted in JavaScript, Программирование |
Kitty JS обновился до версии 0.3
Увы, подход описанный в предыдущем посте оказался в неверным, т.к. не позволял делать полноценные выборки по родительским нодам. Например, невозможно было реализовать селектор :last или :even в запросе типа ".divClass:last input".
Пришлось вернуться к исходному перебору нод, начиная с родительских.
Много надежд возлагал на метод querySelectorAll, однако на практике оказалось, что использование этого метода очень сильно просаживает производительность. Спасает очень быстрый метод getElementsByTagName, в хроме показавший результаты практически вдвое быстрее чем querySelectorAll.
Причину такой разницы в скорости работы .
Что реализовано в версии 0.3:
методы
$K(selector).style(name): string
$K(selector).style(name, value)
$K(selector).attr(name): string
$K(selector).attr(name, value)
селекторы
: disabled
: checked
: empty
: first
: last
: even
: odd
: eq(n)
: gt(n)
: gte(n)
: lt(n)
: lte(n)
Тесты производительности:
10 тысяч операций поиска элементов по id, тэгу, классу, атрибутам.
Chrome 16.
Kitty: 1050 мс
jQuery: 1170 мс
FireFox 7.0.1
Kitty: 1790 мс
jQuery: 1770 мс
IE9
Kitty: 17.2 c
jQuery: 26 c
Результаты IE меня слегка шокировали.
Я, конечно, ожидал результатов несколько ниже чем в хроме или ФФ, но никак не в 20 раз.
@TODO (0.4):
- селекторы выборки по подстроке значения атрибута (^=, |=, $=, ~=);
- базовые методы для работы с нодами и html элементами (find, children, parents, siblings, hasClass, addClass, delClass, val);
- события, обработчики событий;
- расширения.
Скачать, как и прежде, можно тут: