Re[3]: jQuery – Javascript нового поколения
От: ionicman  
Дата: 26.07.07 10:30
Оценка:
Здравствуйте, Mamut, Вы писали:

I>>эээ ребяты.... а зачем это все? расскажите? ну мне просто интересно нахрена уменьшать скорость и так медленного js? или вы хотите сказать что синтаксис этой библиотеки проще чем стандартный? не, действительно реально ктото это использует и оно ему удобно?


M>Я это реально пользую и это мне реально удобно.

очень может быть. я по этому и написал чтобы выяснить кто и зачем пользуется.

I>>обычно у программистов уже есть свой оверлей со всеми стандартными функциями, а переделывать синтаксис орбражений в DOM зачем? XPath? реализуется если надо простым регспом, причем на стандартном сайте имхо такие извраты абсолютно не зачем.


M>Там не только XPath, там и CSS селекторы. Которые во много раз удобнее, чем getElementById + getElmentsByTagName

Кстати говори XPath не полный к сожелению. мне бы гораздо удобнее был XPath, хотя селекторы тоже интересно.

I>>Деревья, табы, ajax? обычно это стандартные контролы на стандартной обвязке там где оно надо — проинклюдили скрипт вызвали функцию и все.


M>Что такое стандартные контролы в стандартной обвязке?

Имеется ввиду что есть куча контролов уже написанных "самих в себе" требующих лишь их проинклюдить и вызвать

M>Что за свои шаблонизаторы? В статье об этом ни слова

Просто такаяже распространенная тема как и фреймворки. Шаблонизаторы модель "данные отдельно от дизайна" например :D

M>Теперь развернутый ответ.


M>Что такое фреймворк? Это набор функций, облегчающий выполнение каких-то действий. Каждый раз, когда программист говорит "обычно у программистов уже есть свой оверлей со всеми стандартными функциями", это надо читать так: "а у нас уже свой фреймворк используется".

Так оно и есть, мне просто интересно почему именно такой способ используете, чем он лучше чем набор DOMа + несколько небольших функций. быстродействие то ведь страдает.


M>Что такое jQuery? Это невероятно маленький (последняя версия — 20KB в сжатом виде) и один из самых быстрых доступных JS-фреймворков. То есть jQuery предлагает набор функций, облегчающих жизнь программисту.



M>Этот пример показывает некоторые проблемы, которые на голом JS решаются неудобно:

M>
M>// находим все элементы с классом ex и присваиваем им onclick
M>$(".ex").click(...

M>// аналог
M>var a = getElementsByTagName("a");
M>for(i = 0; i < a.length; i++)
M>{
M>    if(a.className == "ex")
M>    {
M>        a.onclick = ...
M>    }
M>}
M>


Ну почемуж:
вот кусок очень старой фии:

 function GetElementByProp( o, prop, propval ) {
  GetElementByProp.GEBarr = [];
  GetElementByProp.GEBprop = prop;
  GetElementByProp.GEBpropval = null;
  return GetElementByProp.internal( o )
 }

 function GetElementByProp.internal( o ) {
  if ( o.getAttribute && o.getAttribute( GEBprop ) == GEBpropval ) GetElementByProp.GEBarr.push( o );
  o = o.firstChild;
  while ( o != null ) {
   GetElementByProp.internal( o );
   o = o.nextSibling;
  }
 }


За код не ручаюсь — по памяти писал — ну чтото типа этого и производные от него.
С помощью нее достаточно просто путешествовать и достаточно быстро. Но опережая Ваши возражения — конечно не так удобно, как с jQuery, однако гораздо быстрей.

Это знаете, был такой холивар в фидо давано давно — что тербуется бизнес продукут — удобство клиентам, либо же простота
и скорость разработки. Это я в том смысле что выигрывая в удобности для программиста обычно приложение проигрывает в скорости выполнения для клиента.

M>// находим все элементы div внутри элемента с id="example"

GetElementByProp( document.body, "id", "example" )[0].getElementsByTagName("div")
ну илиже GetElementByProp( document.body, "id", "example" )[0].GetElementByProp( document.body, "tagName", "div" ),
но второй медленнее

M>Причем такие проблемы возникают на самом деле чаще, чем кажется. Просто работа с чистым JS или слабым фреймворком заставляет заранее избегать таких постановок задач. С jQuery становится нестрашен практически по-любому сформированный документ.


ну если честно, у меня и при plain js таких проблем не возникало. Они обычно возникают изза плохо продумывания и алгоритмизации, а также изза недостаточной универсальностти подходов при программировании. Если серъезно обдумать проект и набросать вехи на бумаге — обычно не встречается таких проблем. Это так называемый "дизайн программы"

M>Например, один мой товарищ получает списки цен в виде HTML. Ему надо выводить сумму. Решение? Простейше на jQuery.

ну список цен в виде HTML — это по моему самый простой пример неправильного "дизайна" — не считаете? :D
Хотя если с таким столкнуться, я бы не стал загружать спсиок в DOM — зачем? проще пропарсить регспами будет в данном случае — и быстрей гораздо? я не прав?

M>Решение занимает четыре строчки. Для того, чтобы его написать, мне понадобилось меньше пяти минут. И так — во всем

Спс, хоть один человек толково объяснить смог. а не затруднит ответить на вопрос?
всежтаки в серъезных проэктах очень критично две вещи — быстродействие и долгое незакрыти браузера ( у ff кстати есть офигенная привычка разрастаться от этого в памяти при использовании объектов, у IE + к этому — начинаются тормоза и он в конце концов умирает — в 6-ке было так 7 не мучал еще ), что можно сказать в отчношении jQuery?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.