Re[10]: jQuery – Javascript нового поколения
От: Mamut Швеция http://dmitriid.com
Дата: 27.07.07 08:08
Оценка: +1
I>Вот ты приколист однако. А может те сразу сайт написать — я те сделал пример, чтобы показать что ты нихрена в рекспах не разбираешься. Добавить и хайд и все остально 5 сек — не более. Обойти данную ситуацию — это добавить всего ОДИН символ в regexp. Угадай какой? правильно — делиметр.
S>>Ну что, знаток матчасти, попробуешь свой код поправить?

Дело в том, что нет универсального регэкспа. Любое нетривиальное измиенение в структуре документа — и? Регэкспы рулят, да, но поиска по DOM документа они сильно уступают универсальному решению типа jQuery. Да, внутри jQuery тоже используются регэкспы, но они используются там намного хитрее, чем в лоб.

Например, чего стоит только вот этот комментарий в коде, да и сам код:
// Do a quick check for the existence of the actual ID attribute
// to avoid selecting by the name attribute in IE
// also check to insure id is a string to avoid selecting an element with the name of 'id' inside a form

if ( (jQuery.browser.msie||jQuery.browser.opera) && oid && typeof oid.id == "string" && oid.id != m[2] )
    oid = jQuery('[@id="'+m[2]+'"]', elem)[0];


Более того, у решения jQuery есть один гениальный момент — расширяемость. Так, jQuery предлагает стандартный набор селекторов типа :last, :first, :nth и так далее. Есть возможность расширить этот набор своими селекторами, что нельзя сделать с жестко зашитым регэкспом.

Ну и так далее

I>см, выше. Опять доказываешь что ты ламер.


На RSDN есть правило — не оскорблять собеседников. Особенно, если собеседник — модератор

S>>Я думаю, всем заинтересованным и так видно, что написать 1 (одну) строчку jQuery, которая будет еще и делать именно то что надо, гораздо быстрее, чем отладить regex-based ужос, который ты пропагандируешь.


I>По моему спор не про это был, а про возможности регспа. Письмо свеже первое погляди, умник.


В оригинале было несколько вопросов:

Не смеши мои тапочки. XPath он регекспом реализовал. Для некоторых частных примитивных случаев действительно можно применить регексп. (хотя даже аналог p[class="content"] ты уже заколебешься регекспом воспроизводить). А дальше что? Напомню, регексп работает с текстом, а не с DOM. Как ты собрался доступ к элементу получать? Ну вот покажи мне, как на регекспах спрятать (display=none) все P c классом content.


Ключевой момент выделен. Этот кусок говорит не о том, что регэкспы сакс, а о том, что все покрыть регэкспами нельзя. Вернее, можно, но код сопровождать потом будет невозможно. Причем приведенный тобой код не использует XPath вообще

S>>Кроме того, в отличие от твоего кода этот можно читать. А ты через неделю и не вспомнишь, что именно у тебя в этих TreeGo делается. Тем более этого не поймет другой программист.


I>Хехе... вот по этому ты и хреновый программер. во первых все делается но ООП, и если грамотно — то при малом числе функций в коде гораздо проще разобраться, нежели учить синтаксис фреймворка, isn't it? Другое дело — если при плохом код-дизайне функции и их количство разрастается до невообразимого — тогда да.


Рассказываю про синтаксис фреймворка jQuery.

Программист думает: Надо найти элемент с id="i", в нем найти второй div с class="t" и скрыть его
Программист пишет: $("#i").find("div.t").hide()



В этом сила jQuery — как думается, так и пишется

S>>Небольшое усложнение или изменение исходной задачи — и ты снова день потратишь на отладку. А в jQuery можно за тридцать секунд справиться.

I>Я те по секрету расскажу: если мне надо чтото скрывать или показывать часто — то 90% это контрол а не контент — контейнер. А если же это контент — контейнер — то на его собачатся id, и делается потом getElementById — и все.

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


10ms пользователь не заметит. ВОт у нас есть и шибко большие контролы и шибко динамические — у нас shopping cart построен на jQuery + Taconite. Ничего. Все летает

I>А если ты в случае простых страничек с 2-3 контент контейнерами бужешь jQuery юзать — то это примерно тоже самое что в ларек за пивом на ракете лететь, умник.


Эээ нет. $("#elem").hide() во-первых проще, во-вторых быстрее в написании, в третьих на .01ms медленнее, чем, скажем, getElementById('elem').style.display = 'none'. Зачем мне использовать второе, если можно использовать первое?

Кстати. О простых страничках. http://dmitriid.com/jquery Очень простая страничка. Примеры там тоже тривиальные (видно из кода). Кода на plain js там будет раз в нцать больше, чем с jQuery. А "медленный" jQuery во-первых летает, как реактивный самолет и, во-вторых, позволил слабать ту страничку за полчаса (при том, что я написал свой собственный загрузчик из XML файла со своей структурой)


dmitriid.comGitHubLinkedIn
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.