Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 09.02.2010, 17:30
Аватар для Cr@ZyBoY
Аспирант
Отправить личное сообщение для Cr@ZyBoY Посмотреть профиль Найти все сообщения от Cr@ZyBoY
 
Регистрация: 08.02.2010
Сообщений: 52

Я не понял, что конкретно вам не понравилось, ткните пожалуйста пальцем. В моём понимании оформление и поведение - это разделение HTML-кода и скриптов, но причём тут css, который употребляется внутри отдельно взятой функции?
Ответить с цитированием
  #32 (permalink)  
Старый 09.02.2010, 17:43
Профессор
Отправить личное сообщение для tenshi Посмотреть профиль Найти все сообщения от tenshi
 
Регистрация: 20.03.2008
Сообщений: 1,183

> А зачем мне отделять оформление от поведения?
чтобы поправить цвета мог кто угодно, а не только тот, кто это написал
__________________
.ня
Ответить с цитированием
  #33 (permalink)  
Старый 09.02.2010, 17:44
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Cr@ZyBoY
но причём тут css, который употребляется внутри отдельно взятой функции?
Они имеют ввиду что используя метод который я описал, тебе не надо будет менять скрипты, а просто поменять параметры в классах => ненужные убать, нужные переправить/оставить. Идея кстати хорошая. обязательно реализую, т.к. очень сильно открываются просторы анимации.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт
Ответить с цитированием
  #34 (permalink)  
Старый 09.02.2010, 17:47
Аватар для Cr@ZyBoY
Аспирант
Отправить личное сообщение для Cr@ZyBoY Посмотреть профиль Найти все сообщения от Cr@ZyBoY
 
Регистрация: 08.02.2010
Сообщений: 52

Ок, тогда тоже запишу себе в ToDo.
Ответить с цитированием
  #35 (permalink)  
Старый 10.02.2010, 13:07
Аватар для Riim
Рассеянный профессор
Отправить личное сообщение для Riim Посмотреть профиль Найти все сообщения от Riim
 
Регистрация: 06.04.2009
Сообщений: 2,379

Сообщение от Cr@ZyBoY
на мой выбор такого типа циклов повлияла вот эта статья
статья почти правильная, но вот поняли вы ее видимо не совсем правильно, вот эта фраза:

Цитата:

нужно выполнить какие-либо действия с элементом массива, то без кэширования его в локальную переменную никак не обойтись
про кэширование сказано, но вот ни слова нет о том, в каких ситуациях это кэширование даст прирост производительности. Например, такой код:
obj.prop;
obj.prop;
obj.prop;
obj.prop;


здесь свойство считывается 4 раза, на считывание свойства уходит какое-то время, пусть это время будет X. Всего получается 4X. На перезапись переменной тоже уходит какое-то время, это время в зависимости от браузера может быть больше или меньше X, но не намного и если посмотреть сколько людей пользуются тем или иным браузером, то в среднем можно считать, что на считывание свойства и на перезапись переменной время затрачивается в точности одинаковое. Теперь кэшируем значение:

var t = obj.prop;
t;
t;
t;
t;


вместо четырех считываний свойств (4X) теперь одно считывание и одна перезапись (2X), т. е. производительность улучшилась примерно в два раза. Однако если свойство считывается только один раз, то его кэширование приведет к ухудшению производительности, что и происходит в большинстве ваших циклов, цикл хоть и много раз срабатывает, но имя считываемого свойства меняется в каждой итерации.


UPD: не понимаю как без самых основ по оптимизации кода можно браться писать движки для выборки по css-селекторам.

Последний раз редактировалось Riim, 10.02.2010 в 13:11.
Ответить с цитированием
  #36 (permalink)  
Старый 10.02.2010, 13:33
Аватар для Cr@ZyBoY
Аспирант
Отправить личное сообщение для Cr@ZyBoY Посмотреть профиль Найти все сообщения от Cr@ZyBoY
 
Регистрация: 08.02.2010
Сообщений: 52

Riim,
ну, не в большинстве, конечно, но учту в следующий раз.
Цитата:
не понимаю как без самых основ по оптимизации кода можно браться писать движки для выборки по css-селекторам
Меня почему-то совесть не мучает, если учесть, что мой движок быстрее чем Sizzle, base2, DOMAssistant, Prototype, MooTools, Dojo и Peppy.
Ответить с цитированием
  #37 (permalink)  
Старый 10.02.2010, 15:43
Профессор
Отправить личное сообщение для Dmitry A. Soshnikov Посмотреть профиль Найти все сообщения от Dmitry A. Soshnikov
 
Регистрация: 25.02.2008
Сообщений: 707

Cr@ZyBoY, работа проделана немалая (и по самому фреймворку, и по оформлению сайта, и по PR-у на сайте; главное, чтобы PR соответствовал тому, что есть на самом деле). Как минимум, если фреймворк не станет популярным - Вы набрались опыта. А так - продвигайте, мотивируйте, собирайте комьюнити, возможно, кто-то заинтересуется всерьёз и будет использовать.

Но это будет нелегко, даже несмотря на то, что движок селекторов у Вас быстрее: у монстров типа jQuery и т.д. совершенно другие ресурсы (деньги и т.д.) вбуханы в PR и продвижение.

Успехов
__________________
Тонкости ECMAScript
Ответить с цитированием
  #38 (permalink)  
Старый 10.02.2010, 16:13
Аватар для Cr@ZyBoY
Аспирант
Отправить личное сообщение для Cr@ZyBoY Посмотреть профиль Найти все сообщения от Cr@ZyBoY
 
Регистрация: 08.02.2010
Сообщений: 52

Спасибо, стараемся Да, денег я, конечно, не вкладываю в пиар, да и молод я ещё... А так уже есть планы по использованию Карбона в движке форума ExBB, вроде на этой неделе собирались устроить конференцию в скайпе, будем обсуждать в том числе и интеграцию моей библиотеки
Ответить с цитированием
  #39 (permalink)  
Старый 10.02.2010, 16:27
Аватар для PeaceCoder
Профессор
Отправить личное сообщение для PeaceCoder Посмотреть профиль Найти все сообщения от PeaceCoder
 
Регистрация: 15.12.2009
Сообщений: 742

Сообщение от Riim
вместо четырех считываний свойств (4X) теперь одно считывание и одна перезапись (2X), т. е. производительность улучшилась примерно в два раза
Только Вы забыли что если кешировать простое число или строку то запись в кешированную переменную бессмысленна.

На счет движков селекторов.
В документе 1360 элементов, включая такой HTML
<span id='id1' class='SPAN'>
  <i></i>
  <span id='id3'>
    <i>
      <span>
        <div>
          <b>
            <a class='SPAN1 ppp'>1</a>
          </b>
          <a id='id4'>2</a>
        </div>
      </span>
    </i>
    <span id='id2'>
      <div>
        <b>
          <a id='id3'>3</a>
        </b>
        <a id='id5'>4</a>
      </div>
    </span>
  </span>
</span>

Принудительно во всех движках отключен кеш и возможность querySelectorAll
На запрос (должен выдавать 2 элемента SPAN#id3,A#id3)
#id1 #id3

Такие результаты:
jQ: 0.1576мс, результат: SPAN#id3 (неверно)
Peppy: 0.1869мс, результат: SPAN#id3 (неверно)
DOMAssistant: 1.86мс, результат: SPAN#id3, A#id3 (верно)
CarbonJS: 0.075мс, результат: SPAN#id3 (неверно)

На запрос (должен выдать 2 элемента A#id4,A#id5)
* SPAN I + SPAN DIV B + *

Такие результаты:
jQ: 6.83мс, результат: A#id5 (неверно)
Peppy: 70мс, результат: A#id4,A#id5 (верно)
DOMAssistant: 10.571мс, результат: A#id4,A#id5 (верно)
CarbonJS: 12.84мс, результат: A#id4,A#id5 (верно)

Так что есть над чем подумать, а ктото кричит (по инету слухи) Peppy самая быстрая. Да она самая медленная без кеша и нативных методов.
__________________
Настоящий программист думает и осознает сам решение задачи, а не копирует другие мысли, не осознавая их (c)
Относись к человеку так же, как хотелось бы отношения к себе (с)
Все нужно там, где оно нужно, а все не нужно нигде (с) Gozar
B~Vladi: А кто такой JavaScript стрелок?! micscr: это тот, кто не jQuery танкист.
Программы становятся медленнее быстрее, чем компьютеры становятся быстрее (с) Никлаус Вирт

Последний раз редактировалось PeaceCoder, 10.02.2010 в 16:29.
Ответить с цитированием
  #40 (permalink)  
Старый 10.02.2010, 16:38
Аватар для Cr@ZyBoY
Аспирант
Отправить личное сообщение для Cr@ZyBoY Посмотреть профиль Найти все сообщения от Cr@ZyBoY
 
Регистрация: 08.02.2010
Сообщений: 52

PeaceCoder,
попридержите коней. Откуда у вас в html-коде взялось 2 элемента с одним id? Это прямое нарушение стандарта.
По поводу селектора "* SPAN I + SPAN DIV B + *" - вы же не каждый день такую мешанину ищите. На более простых селекторах, которые встречаются чаще всего, Карбон выигрывает.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите с javascript andruhin Общие вопросы Javascript 12 04.05.2012 10:05
JavaScript на Яндекс.Фотки - почему тормозит браузеры? ZavFirefox Javascript под браузер 23 27.09.2009 19:24
js-core JavaScript framework Octane Ваши сайты и скрипты 32 25.06.2009 10:17
Программист на JavaScript (удалённо) Vadym Работа 1 28.01.2009 13:57
Нужен Старший разработчик JavaScript Yandex Работа 17 19.08.2008 16:43