Здравствуйте, Mamut, Вы писали:
Z>>Пример с алертом был утрирован СПЕЦИАЛЬНО!
M>И именно поэтому он некорректен. ПОтому что это — синтетический пример, который ничего не доказывает.
M>Я привел тебе гораздо более реальный пример, который ты благополучно проигнорировал.
M>Тултип в 36КБ против jQuery + тултип в 29.7КБ
M>Или тот же пример с $('a.ajax')...
M>Эти примеры ты активно игнорируешь, хотя они показывают, что код ручками проигрывает коду, основанному на jQuery.
Я не игнорирую, я сознательно отказываюсь играть по вашим правилам и доказывать что-то, впрягаясь в программирование ради доказательства. Пример с алертом некорректен в такой же степени, как и все те примитивные примеры, на базе которых показывается лже-простота пропагандистами, как и твой пример с раскраской строк, такой же не оптимальный и не требующий jQuery по большому счёту. Это и есть разговор о javascript и о программировании (который ты не увидел), разговор, на которой я настроился, а не на "про скорость разработки, зарплаты, бизнес и проч".
Z>> Чтобы продемонстрировать избыточность кода задаче. Очень похожие утрированные примеры (подвесить клик на якорь или добавить класс и т.п.) используются в большинстве туториалов. Общий посыл при этом — смотрите и учитесь, как просто и легко можно это сделать по сравнению с чистым javascript. Хотя на самом деле (вообще не понимаю, как можно об этом ещё и спорить) отдельная задача и даже несколько связанных задач решаются руками проще/оптимальнее/качественнее, чем с использованием большого избыточного (априори всегда избыточного) пакета. Тем более чужого. Тем более javascript-пакета. Тем более в исходники которого, как оказалось, никто и не смотрит.
M>Если хочешь, я напишу статью "Advanced uses of jQuery". Хотя она никому нафиг не сдалась, потому что через два дня после работы с jQuery люди сами начинают писать код любой сложности. Да в туториалах можно найти полезную инорамцию, идущую дальше, чем простые примеры (например, My First ExtJS DataGrid).
Хочу, полный разбор исходников, узкие места, сравнение всего кода со всем кодом, а не передёргивание с вызовами. Может тогда меньше по javascript тусовкам будет бродить привидений, который задают вопросы вроде, "а что это за синтаксис такой $(), а то не могу его в доках найти".
M>А насчет отдельных задач...
M>Задача 1. У меня на странице есть ссылки с классом .ajax. Необходимо сделать так, чтобы при щелчке на эти ссылки аяксом подгружалась страница, находящаяся по адресу в href соответствующей ссылки, а содержимое той страницы загружалось в элемент с id="ajax_result" (например, нечто похожее реализовано в этом тултипе и у меня на странице).
M>Показываю в последний раз
:
M>M><a href="/test1.html" class="ajax">Ссылка 1</a>
M><a href="/test2.html" class="ajax">Ссылка 2</a>
M>
M>M>// У меня на странице есть ссылки с классом .ajax
M>$("a.ajax")
M> .click( // Необходимо сделать так, чтобы при щелчке на эти ссылки
M> function(){
M> $.get( // аяксом подгружалась страница
M> $(this).attr("href"), //находящаяся по адресу в href соответствующей ссылки
M> callback
M> )
M> }
M> );
M>function callback(result){
M> $("#ajax_result").append(result); // а содержимое той страницы загружалось в элемент с id="ajax_result"
M>}
M>
M>Задача 2. Изменить задачу 1 так, чтобы тоже самое работало для всех ссылок в элементе с id="other":
M>M><div id="other">
M> <a href="/test1.html">Ссылка 1</a>
M> <a href="/test2.html">Ссылка 2</a>
M></div>
M>
M>M>$("#other a")... // остальной код такой же
M>
M>Ваш ход. Можно использовать "чистый" JS или самописные фреймворки.
Хожу:
f();
Z>>Но если количество и объём многомерных задач таковы, что мы уже подходим к раскрытию возможностей jQuery по-максимому, то фреймворк можно (заметьте, я не выступаю против, я говорю, что можно) использовать, на то он и большой пакет.
M>Просто таки гигантский пакет. Целых 20КБ кода
Во-первых 60 скопейками, а не 20, но это модная манера такая сжатый код презентовать. И 20 много, если тебе нужно только то, что укладывается в 2-4-5-10...
Z>>Но в этом смысле сразу возникает парадоксальная ситуация — программист делает большой суръёзный javascript-проект, что предполагает всё-таки владение предметом, и при этом он не в состоянии предложить свои собственные решения, которые бьют строго в заданную оптимальную точку.
M>Почему считается, что оптимальная точка — это, например, умение написать кроссбраузерный аякс, а не, например, taconite на основе уже готового и кроссбраузерного аякса и готовой кроссбраузерной выборки по селекторам? Я лучше напишу taconite, чем в очередной раз заново писать низкоуровневый код.
Z>>Почему так происходит? Само собой, ни один из нас не признается в своей слабой подготовке или в нехватке времени, или в нехватке браузеров, или в недостатке кросс-браузерного опыта, или в ещё в чём, не знаю
M>Я, по-моему, уже не раз говорил, что наша задача — это не разрабатывать свой собственный javascript-фреймворк, а разрабатывать продукт.
Я с кем разговариваю? Ты менеджер, владелец, программист или всё вместе? Выдави из себя javascript-программиста и поговорим. А иначе я начинаю путаться в маркетологических смыслах.
M>Яркий пример. Wordpress с версии 2.2 используют jQuery. Почему они не написали свой собственный фреймворк? Потому что их задача — выпустить оптимальный кросс-браузерный форумный пакет, а не разрабатывать велосипеды. У них есть задачи поважнее и поинтереснее, чем бороться с браузерами и тестировать Javascript на двух десятках платформ. Им проблем с кросс-браузерным CSS хватает.
Опять про бизнес, теперь Wordpress-ный.
D>>>А потом еще копипайстить из одного проекта в другой — если снова заходите использовать...
Z>>Эти доводы я принимаю и не принимаю одновременно, согласитесь, что всё зависит от ситуации. Компании "A", построившей все свои проекты на базе JSLibrary №13 ваши jsQuery-наработки даром не нужны. Но, замечу, всегда будет нужен ваш опыт в отрыве от любой либы...
M>Отучаемся говорить за всех. Мне известно много случаев, когда компания "А" с радостью переходила на грамотный фреймворк, потому что избавлялась от кучи геморроя и головной боли.
Отучаемся передёргивать карты, я говорю не за всех, а о том, что всё зависит от ситуации. То есть говорю про то же, что и ты.
D>>>Странные посты против фрейворков вообще, вы вот и на сервер-сайд наверное никаких фреймворков не используете, сами GET/POST валидируете и популируете, постинг каждой формы по новой все этапы реализуете, различные утилитные функции, велосипеды изобретаете на каждом шагу наверное...
Z>>Это посты не против либ как таковых вообще, пользуйтесь, если нравится, а посты против того, что кто-то имеет смелость сравнивать javascript vs. jQuery или javascript-программирование vs. псевдо-программирование.
M>Что тако псевдо-программирование?
M>Например, taconite — это псевдо-программирование? Или, скажем, Interface. Или, скажем, Ext?
Псевдопрограммирование в смысле javascript — это то, что описывает твоя статья, это управление самодельным неоптимальным избыточным нетобойсделанным АРI от джона/пети/димы с отсутствующим прошлым и неясным будущим...