Как стать автором
Обновить

Комментарии 69

Разработчики прямо таки воодушевились, ждём jQuery 1.5…
статистика говорит, что версия меняется каждые 1-2 года :)
Бывают же в нашем мире чудеса… :)
поэтому и каждая новая версия на диаграмме в 2 раза быстрее, ведь за 1-2 года скорость компьютеров удваивается по закону Мура.
ну так сравнительные тестирование проводят то на одном железе всегда
Перечитайте свой комментарий и посмотрите на диаграмму тестов.
«Обовился jQuery до версии 1.4.2»
маленькая опечаточка…
А так новость порадовала! надо обновиться
Что-то мне подсказывает, что список внизу слева-направо надо смотреть снизу-вверх, т.е. сверху не FF 3.5, а IE 6.
Истина. Однако всё равно после IE идет именно FF.
эмм… а по-моему после ИЕ6 идет 7 и 8, а потом хром, сафари опера и самые быстрые FF 3.6 и 3.5, ведь смоллер из беттер
речь же про 1.4.2
после IE идет FF (а про IE6 конкретно я не писал)
Opera и Safari быстрее на всех версиях — факт.
Ie6 -> ie7 -> ie8 -> Chrome -> Safari -> Opera -> FF3.6 -> FF3.5
сравнил колорпикером с легендой, именно в такой последовательности НА ВСЕХ ВЕРСИЯХ.
Что не туда куда-то глядим ;)
Возьмем график 1.3.2, где более четко видны различия.
IE6 -> IE7. Потом IE8 и почти такой же результат у FF3.5
Далее Chrome и немногим лучше FF3.6
И только потом Opera и Safari.
на ось Y посмотрите, чарты не по горизонтали расположены вообще-то
да все правиольно он сказал =). IE8 почти тоже самое что и FF3.6 на jQuery 1.3.2.
ойой, тоже самое что и FF3.5 я хотел сказать
Диаграмму читаете неправильно. Самый быстрый из всех — Safari, затем Opera, потом Chrome. На всех версиях.

То что FF в самом низу диаграммы вовсе не говорит что тут «смоллер из беттер». Тут чем уже, тем быстрее, а не чем ниже.
прошу прощения, а цифры слева по оси Y для кого?
Да это график такой, блин.
Там высота каждого бара определяется суммой составляющих. А ширина составляющих говорит о их «весе» (в данном случае, чем шире блок — тем больше он по времени, при проецировании на ось Y).

Т.е. на графике сумма всех скоростей во всех браузерах на энном тестовом компе у jQuery 1.3.2 что-то около 19000...20000мс. При этом IE6 (на глаз) — около 6000мс, а Safari — что то около 400-500мс, тут уже на графике этого совсем не разглядеть без штангенциркуля =).
да по уму надо было проекции на ось Y рисовать, но они не замарачивались =) повторюсь: главное тут не цифры, а графическое восприятие долей. И тут абсолютные доли, а не то кто кого больше и на сколько
На графике действительно время всех браузеров складывается и каждый сегмент обозначает время только этого браузера. Т.е. если смотреть на первый график, Fx 3.5 примерно равен IE8, а FF 3.6 Хрому.
НЛО прилетело и опубликовало эту надпись здесь
да никому не нужны просто цифры конкретные, все понятно графически, конечно по уму надо было в приведенном в статье графике спроэцировать доли на левую ось и посчитать их длины, но конкретные цифры говорят хочу чем графическое представление инфы.
не верю, что FF обогнал Chrome и Safari…
Я увы вижу такую последовательность:
Ie6 -> ie7 -> ie8 -> Chrome -> Safari -> Opera -> FF3.6 -> FF3.5

И как-то мне если честно непонятно как скажем хром может быть медленее FF3.5
Это на 1.3.2.
А на 1.4.2 ie6 -> ie7 -> ie8 -> ff3.5 -> ff3.6
я может что то недопонимаю, но для чего там легенда внизу?
в легенде последовательность слева направо, взаимооднозначно соответствует «слоям» на диаграмме снизу вверх, для всех трех вариантов.
FF везде примерно равен скорости хрома (а в 1.4.2 даже чуть тормознее), для меня удивительно, но Opera и Safari показывают лучшие результаты =)
Про FF vs Chrome ничего удивительного — движок яваскрипта в Firefox тоже афигительно быстрый. Там скорость рендеринга хромает (а в хроме, сорри за каламбур, всё отлично с этим =))
На самом деле непонятные графики. Заходим и тестируем.
У меня:
Firefox 3.6      703ms
Chrome           615ms 
Не волнуйтесь, скоро Опера это исправит. *sad*
Хм, забавно. А у меня более оптимистичные результаты…
Как оказалось, в первых сборках, задолго до беты, Опера 10.5 в этом тесте была даже быстрее 10.1 процентов на 30.
Ну у меня 10,5 попрежнему быстрее 10,1… Сча из интереса прогоню тест во всех браузерах
Билд старый.
Последний билд. Результат для этой версии ЖКвери — 298.
Где медленнее O_o?
Молодцы ребята!

наверное лучший фреймворк в своем классе.
в каком ещё классе?
JQuery — отличный фреймворк. Но маркетинг у них точно «лучший в своем классе». 8 из 15 возможностей, которые появились в 1.4, были в mootools или с версии 1.1 (вышла на 3 года раньше), или с версии 1.2 (вышла на 18 месяцев раньше). Еще 7 или реализуются с mootools за пол-часа, или есть в плагинах. 1й нет и просто не сделаешь (это event delegation для событий focusin и focusout), но это обещают в следующем релизе (и вроде как код в репозитории уже есть).
дело не только в наличии возможностей, Но и в простоте их использования
Синтаксис всех новых фич, кстати, практически 1 в 1 как в MooTools, за исключением более коротких (другой взгляд: «менее понятных») названий методов.

А вообще согласен. В jQuery и правда удобнее работа с DOM. Что часто является решающим фактором. Нет необходимости учить и понимать js, чтобы хоть что-то написать. Для какой-нибудь мелочи — идеальный вариант, можно просто и быстро добавить эффект на страницу или что-то в этом роде. API простой и хороший.

Но для программирования все же удобнее MooTools. Как минимум это поддержка более-менее современного синтаксиса js во всех браузерах. Ну и вообще заточено все для удобства программирования (даже название — My Object Oriented Tools).

Возможно, неплохим вариантом было бы даже совместное использование урезанных версий обеих библиотек — MooTools как основы (выкинув всю работу с DOM) и jQuery как API для манипуляций с DOM (выкинув все остальное).
на самом деле так и делаю, для этого и есть переименования функции JQ, жаль что в MT нет такого переименования
один я не вижу разницы между
$(«table»).delegate(«td», «hover»
и
$(«table td»).live(«hover»
?

зачем нужно было ещё одну сущность вводить?
$(«table td»).live(«hover») — назначает столько обработчиков, сколько и ячеек
$(«table»).delegate(«td», «hover») — назначает один обработчик на таблицу и передает в this нужную ячейку.
Нет. live тоже назначает один обработчик на все ячейки. Разница только в том что контекстом в первом случае назначается document. Но контекст в live можно указать в аргументах если нужно его сузить. Вот и не понятно зачем нужно 2 функции, которые делают одно и тоже.
если не трудно киньте мне ссылку почитать про то что понимается под контекстом? это тот элемент DOM, который обрабатывает событие собственно? и если можно разъясните (опять же линком) как работает эта штука: она каждый раз ворочает эту функцию на родительском элементе или она на изменения дом модели пришивает новым элементам обработчик.
api.jquery.com/live/
там даже пример есть
$('div.clickme', $('#container')[0]).live('click', function() {
// Live handler called.
});

если контекст не указать, то будет document. И судя по всему да, событие вешается на контекст а в обработчик приходит this нужного элемента.
С live вариантом контекстом к которому привязано событие будет document root и после каждого hover в нём будет искаться table td.
С delegate вариантом контекстом будет table.
тогда теряется смысл лива %-)
или делегейта ) потому что это тоже самое
delegate: function( selector, types, data, fn ) {
return this.live( types, data, fn, selector );
}
При определенных условиях это дает значительный выигрыш в быстродействии.

$(«table td»).live() найдет все td и повесит на document обработчик. Сами найденные td ему не нужны, но их поиск может занять много времени.
$(«table»).delegate(«td») будет искать только table.
может быть live со временем станет deprecated и весь смысл в этом?
Простите за ламерский вопрос, а backward compatibility осуществляется? В cms используется 1.3.2, а в своих скриптах хотелось бы последнюю использовать.
Простите за ламерский вопрос, но я смотрю на это сравнение производительности и никак не могу вспомнить хотя бы один пример когда производительность вычислений на клиентской части была bottleneck-ом. Я понимаю что чем больше попугаев тем лучше но все ж таки можно услышать пару-тройку примеров когда производительность JS критична?
KO: Google wave. Пример не единственный, но, пожалуй, самый узнаваемый.
Как интересно, предыдущий оратор начал свою рeчь точь-в-точь как Вы.
Отвечая на Ваш вопрос, можно сказать, что когда речь идет об единичных элементах их выборка или анимация, скорее всего, не будут серьезной нагрузкой. Но если допустим сотня элементов таблицы, и необходима сортировка по определенным параметрам, тут уже возможны нюансы. к примеру
Версия сафари и оперы не указана. Производительность оперы радует, интересно, это 10.5 с новым движком, или 10.1? Особенно радует, что опера обошла традиционно быстрый в js Chrome.

Может, тут имеет место оптимизация оперы под jquery или наоборот, jquery под оперу?
Отличный пример того, как нельзя составлять диаграмму :)
Я так не считаю. Просто диатрамма не для сравнения браузеров по производительности JS, а для сравнения скорости разных релизов фреймворка.
Извините за офф-топ, но если кому интересно — друг написал о jQuery в песочницу, может кому пригодится статья, то поделится инвайтом… ;)
а ссылочку дайте
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории