17 января 2012

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);
  • события, обработчики событий;
  • расширения.

Скачать, как и прежде, можно тут: http://www.phpfw.ru/kittyjs/kitty.zip

Оставить комментарий

  • Кнопки

  • Каталог блогов Blogdir.ru
  • каталог блогов
  • Каталог блогов