Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 18.08.2012, 17:19
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Сообщение от Aetae Посмотреть сообщение
P.S. Это абсурд: самодельная функция some работает быстрее нативной. *facepalm*
Хотя нет, это не точная реализация.(с моим любимым обратным итератором);
Точная реализация, работает с точно такой же скоростью.
Фф сам написан на js большей частью, и есть подозрение, что афффтары не парились, а просто включили готовые реализации методов на js.=)

Сообщение от melky Посмотреть сообщение
ну, как говорится, код нативный, а коллбек - джяваскрыптовый.
Думаю если постараться - то можно сделать как надо.
__________________
29375, 35
Ответить с цитированием
  #12 (permalink)  
Старый 18.08.2012, 17:20
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Aetae Посмотреть сообщение
Фф сам написан на js большей частью, и есть подозрение, что афффтары не парились, а просто включили готовые реализации методов на js.=)
или наоборот, выложили на MDN часть "исходных кодов".
Ответить с цитированием
  #13 (permalink)  
Старый 18.08.2012, 18:38
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

"однобуквенные переменные" !== "лаконичность"
Ответить с цитированием
  #14 (permalink)  
Старый 18.08.2012, 18:49
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от Дзен-трансгуманист
Спорное утверждение. Обычно люди ищут по возможности стремятся к адекватному компромиссу между скоростью, читабельностью и реюзабилити.
я имел в виду любителей реактивных скоростей в коде людей, занимающихся муравьиной оптимизацией.

Сообщение от Дзен-трансгуманист
А количество операторов что, уже не в счет?
простите, но я в упор не вижу разницы между этим
var result = { 'left': Infinity, 'top': Infinity, 'right': -Infinity, 'bottom': -Infinity };
 
while (i--) {
  r = arr[i].getBoundingClientRect();
  if (result.left > r.left) result.left = r.left;
  if (result.top > r.top) result.top = r.top;
  if (result.right < r.right) result.right = r.right;
  if (result.bottom < r.bottom) result.bottom = r.bottom;
}
var i = arr.length, rc, l = Infinity, t = l, r = -Infinity, b = r;

while (i--) {
  rc = arr[i].getBoundingClientRect();
  if (l > rc.left) l = rc.left;
  if (t > rc.top) t = rc.top;
  if (r < rc.right) r = rc.right;
  if (b < rc.bottom) b = rc.bottom;
}

return { 'left': l, 'top': t, 'right': r, 'bottom': b };

единственное - res ушёл в конец, и его начальные величины вылезли в переменные.

ну, да. код стал меньше но не сильно.

и, да. насчёт однобуквенных переменных.
я не буду устраивать холивар. (т.е. не собираюсь)
Вам приятно будет читать такой код ?

знаю, что Ваши r,l,t,b говорят сами за себя, но всё равно они не бросаются в глаза, как left, right, top, bottom
Ответить с цитированием
  #15 (permalink)  
Старый 18.08.2012, 19:43
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Разницы в скорости нет. А лишние переменные имхо - не гуд.
__________________
29375, 35
Ответить с цитированием
  #16 (permalink)  
Старый 18.08.2012, 20:23
Аватар для nerv_
junior
Отправить личное сообщение для nerv_ Посмотреть профиль Найти все сообщения от nerv_
 
Регистрация: 29.11.2011
Сообщений: 3,924

кто хочет скорости, пусть пишет на ассемблере.
По мне так последний вариант Aetae читается лучше, так же как и первый вариант Дзен-трансгуманиста.
А по поводу первого варианта все верно Aetae зачем формировать массив там, где он не нужен. Недавно код лопатил (чужой), который производит нечеткое сравнение строк (по достаточно простому алгоритму) и выбирает из массива наилучшее совпадение. Там та же фигня была: формировался массив (непонятно зачем) и затем из этого массива выбирался элемент.
__________________
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук

Последний раз редактировалось nerv_, 18.08.2012 в 20:26.
Ответить с цитированием
  #17 (permalink)  
Старый 18.08.2012, 22:31
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,590

Ну идея была в том, что нативный Math.max\min будет быстрее.)
__________________
29375, 35
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение нескольких блоков в аккордеон robertkein jQuery 0 07.05.2012 19:37
Смена нескольких картинок при наведении Demoni Элементы интерфейса 8 28.04.2012 23:57
Автоматическая смена нескольких картинок utb jQuery 4 24.01.2012 12:47
Сложение нескольких значений элементов frolvict jQuery 2 04.12.2010 11:52
поменять цвет у нескольких строк в таблице Root Элементы интерфейса 4 21.04.2008 10:30