Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 25.12.2011, 20:16
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
Никто не говорил, что селекторами быстро.
Встроенные функции, как правило, быстрее циклов.
Сообщение от Nekromancer
Эт вы в jQuery понабрались.
А причем здесь jQuery?
Ответить с цитированием
  #12 (permalink)  
Старый 25.12.2011, 20:28
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от FINoM
Встроенные функции, как правило, быстрее циклов.
Неужели, а цикл типо не встроенный? Цикл например быстрее forEach. Я конечно понимаю о чём вы говорите, но правильно то нужно выражаться. Да и что за привычка приводить всё к одному, вы представляете как работает та функцию, о которой вы говорите?

Сообщение от FINoM
А причем здесь jQuery?
Девиз jQuery - "пиши меньше - делай больше". Туда же попадает и удобнее. Но все забывают написать о том, что работай медленнее.
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
  #13 (permalink)  
Старый 25.12.2011, 20:32
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
Да и что за привычка приводить всё к одному, вы представляете как работает та функцию, о которой вы говорите?
Я так понимаю, что она работает так же, как и селектор в css, а как работают селекторы в css, имею представление.
Сообщение от Nekromancer
Девиз jQuery - "пиши меньше - делай больше". Туда же попадает и удобнее. Но все забывают написать о том, что работай медленнее.
Это — не сиззл, это — встроенная функция. Она точно была бы быстрее (при наличии селектора первого потомка), чем цикл + проверка каждого элемента на соответствие селектору.
Ответить с цитированием
  #14 (permalink)  
Старый 25.12.2011, 20:38
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

Сообщение от FINoM
Я так понимаю, что она работает так же, как и селектор в css, а как работают селекторы в css, имею представление.
Ну вот и расскажите, почему оно быстрее тогда.

Сообщение от FINoM
Это — не сиззл, это — встроенная функция. Она точно была бы быстрее (при наличии селектора первого потомка), чем цикл + проверка каждого элемента на соответствие селектору.
Ну сделайте бенчмарк, посмотрим Хотя через тот способ, что вы предложили в начале, через id. И кстати, как jQuery не причём, если вы пытаетесь воспользоваться селектором из jQuery, в селекторах CSS. В css так писать нельзя:
> div {
/* ... */
}
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.

Последний раз редактировалось Nekromancer, 25.12.2011 в 20:40.
Ответить с цитированием
  #15 (permalink)  
Старый 25.12.2011, 20:41
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
Ну сделайте бенчмарк, посмотрим
Ок, попробую.
Ответить с цитированием
  #16 (permalink)  
Старый 26.12.2011, 03:44
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сделал бенчмарк при 20 дивах, каком-то количестве других элементов, 10000 итерациях. Селекторы быстрее в 17 раз. Может быть можно оптимизировать выборку по childNodes, но, уверен, это не придаст существенного увеличения скорости.

Бенчмарк без присваивания результатов выборки:
http://jsfiddle.net/finom/RDV7g/6/
selector: 189ms
childNodes: 3246ms

Бенчмарк с присваиванием:
http://jsfiddle.net/finom/LBU4W/1/
selector: 188ms
childNodes: 3170ms
Ответить с цитированием
  #17 (permalink)  
Старый 26.12.2011, 03:46
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Сообщение от Nekromancer
В css так писать нельзя
Я знаю, но думал может в querySelector добавили что-то типа @this.
Ответить с цитированием
  #18 (permalink)  
Старый 26.12.2011, 03:47
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

Ах да, для запуска нужен хром и консоль.
Ответить с цитированием
  #19 (permalink)  
Старый 26.12.2011, 03:57
Аватар для FINoM
Новичок
Отправить личное сообщение для FINoM Посмотреть профиль Найти все сообщения от FINoM
 
Регистрация: 05.09.2010
Сообщений: 2,298

А вот тест с поиском по атрибуту:
<div data-id="main1234567">...</div>

div.querySelectorAll('[data-id="main1234567"] > div');

http://jsfiddle.net/finom/LBU4W/2/
Результат тот же.
Ответить с цитированием
  #20 (permalink)  
Старый 26.12.2011, 04:09
Аватар для Nekromancer
Профессор
Отправить личное сообщение для Nekromancer Посмотреть профиль Найти все сообщения от Nekromancer
 
Регистрация: 06.05.2009
Сообщений: 1,163

http://jsfiddle.net/RDV7g/7/
Firefox:
selector: 442ms
childNodes: 654ms
Chrome:
selector: 689ms
childNodes: 1173ms

http://jsfiddle.net/RDV7g/8/
Firefox:
childNodes: 302ms
selector: 451ms
Chrome:
childNodes: 373ms
selector: 681ms

Давайте не усложнять код
__________________
Нужно равняться на лучших, а не оправдываться за счёт худших.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический селектор raindew Элементы интерфейса 3 20.11.2011 18:37
Предыдущий селектор KupueIIIKo jQuery 1 05.10.2011 01:27
ефектиный селектор на Jquery ejik jQuery 6 17.11.2010 13:21
После первого действия скрипт перестает работать cyberx jQuery 6 12.06.2010 22:04
Доступ ко второму IFRAME из первого thunder2 Events/DOM/Window 6 06.08.2009 15:24