Я пытаюсь убедить тех, кто устанавливает стандарты в моей нынешней организации, что мы должны использовать jQuery, а не Prototype и / или YUI. Какие убедительные преимущества я могу использовать, чтобы убедить их?
JQuery - это просто манипулятор DOM, YUI - это компонентная структура с включенным манипулятором DOM.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Одним из преимуществ jQuery является большое сообщество, которое разработало множество плагинов.
Три основных преимущества jQuery:
Я человек прототипов, но немного использовал jQuery. Честно говоря, я не вижу между ними ничего, что можно было бы использовать в качестве «аргумента в пользу продажи». С другой стороны, YUI довольно раздут. Я бы никогда не использовал его ни в каком приложении коммерческого уровня.
Я нашел эта страница, который говорит именно на эту тему.
Крис Хейлманн, который сейчас работает в Yahoo !, имел аналогичные мысли о YUI, когда только начинал в Yahoo! wait-till-i.com/2007/06/16/… - обсуждает это. YUI 3 также вносит значительные изменения в API.
Никогда не используйте YUI в приложениях коммерческого уровня? Ну @LinkedIn решили иначе, они используют YUI ... (developer.yahoo.com/yui/poweredby)
На мой взгляд, кратко попробовав Prototype, а затем попробовав и полюбив jQuery: jQuery API кажется намного чище и хорошо продуманным. Джон Ресиг, создатель / архитектор jQuery, действительно знает свое дело, и это видно в дизайне jQuery, а также в различных других впечатляющих проектах JavaScript, частью которых он был.
Все концепции запросов и цепочки очень хорошо сочетаются с манипуляциями с DOM, которые, кажется, являются основной тяжестью того, для чего люди используют библиотеки JS. Онлайн-документация просто великолепна. Производительность тоже кажется очень хорошей. Учитывая ее возможности, вся библиотека умещается в относительно небольшой пакет. Архитектура плагина также очень хороша для расширяемости.
Я, честно говоря, не пробовал YUI, поэтому особо не могу это комментировать. Я знаю, что в целом это довольно большая библиотека, хотя вы можете загружать / использовать только определенные ее модули.
Может, не стоит? Все зависит от того, какие приложения вы создаете. Если вы создаете приложения с интенсивным графическим интерфейсом, например Yahoo! Mail, тогда, возможно, вам стоит подумать об использовании YUI или Mootools вместо jquery. Лично я большой поклонник jQuery, но он определенно лучше всего подходит для добавления прикосновения взаимодействия к обычно статичному пользовательскому интерфейсу. С другой стороны, если это то, для чего вы будете его использовать, тогда jquery намного проще, имеет более приятный синтаксис и имеет большую динамику.
Он очень маленький, особенно когда он минифицирован, и предлагает многое в основной библиотеке.
Его также легко расширить, и у него есть активное сообщество.
Я бы сказал, что основными причинами использования JQuery являются:
Не только радар Microsoft, но и радар Google.
Почему бы вам не провести быстрое сравнение?
Возьмите задачу вроде «найти все div или таблицы, содержащие изображения класса foo, и прикрепить к каждому из них событие щелчка, которое заставляет их расширяться на 50%». Или что-то более соответствующее тому, что вы делаете.
Затем закодируйте это с помощью jQuery, Prototype и т. д. И сравните. Что короче? Легче читать? Быстрее бежать? (Вы можете найти сравнение скорости здесь.)
Я бы выбрал менее произвольный тестовый пример. Как насчет того, чтобы сделать AJAX-вызов внешнего скрипта и поместить ответ в стилизованное окно сообщения в середине экрана.
Один из аргументов в пользу этого:
популярность + расширяемость
1) Если кому-то нужно делать X с помощью JavaScript, вероятно, это было сделано с помощью jQuery
.
2) Если много сделано, то наверняка есть плагин, если не нативная поддержка
И если В самом деле уникален, есть много людей, которые ответят на ваш вопрос по SO или где-то еще.
У него хороший набор плагинов, а стиль кодирования ненавязчивый, что означает, что его не так уж сложно заменить. Также есть хорошая замена для помощников Ruby on Rails, называемых jRails.
По производительности они все довольно близки: http://www.kenzomedia.com/speedtest/ Однако MooTools, dojo, ext и Prototype в моей среде работают быстрее.
У меня вопрос - почему вы хотите его использовать? Просто потому, что ты знаешь это лучше?
Хороший вопрос! Я хочу использовать его, потому что я думаю, что он имеет лучший синтаксис, больше доступных функций (когда вы включаете плагины), отличную документацию и НАМНОГО более сильную поддержку сообщества. Но у нас уже есть стандарт компании, поэтому я подумал, что поищу дополнительные идеи, чтобы подкрепить мои аргументы.
Jquery существует уже несколько лет, поэтому, как все уже говорили, у него глубокое сообщество, множество плагинов и достойная поддержка. Что меня оставило в стороне, так это то, что этому легко научиться.
Это самый продуманный язык, который вы найдете - он почти интуитивно понятен.
Хотите ширину элемента?
$('#something').width();
Хотите захватить элемент, скрыть его, изменить цвет фона и вернуть его обратно?
$('#something').hide().css('background', 'red').fadeIn();
Как насчет чередования таблиц для IE (при условии, что класс hover определен)?
$('table tr').hover(function() {
$(this).addClass('hover');
});
Такая быстрая и бездумная работа действительно помогает продавать jQuery.
Вот более свежий тест скорости, чем приведенный выше. В прошлый раз, когда я запускал его, додзё было самым быстрым, за ним следовали jQuery, Mootools, Prototype и, наконец, YUI. Обратите внимание, что я запускал его в Firefox 3, и его скорость варьируется в зависимости от браузера, поэтому проверьте его сами.
Это не недавний тест скорости и не исчерпывающий. Slick Speed сравнивает механизмы выбора CSS, а не общую производительность. YUI 2.5.2 был выпущен в 2008 году. Текущая производственная версия YUI 2.x - 2.8.2, а версия 2.9 находится в разработке. Это будет последний выпуск точки в строке кода 2.x. YUI 3 доступен с 2009 года. Текущая версия - 3.2, а 3.3.0 поступит в продажу в январе 2011 года.
Если вы пытаетесь убедить людей с точки зрения бизнеса, недавнее решение Microsoft о поставке jQuery с Visual Studio может помочь завоевать дополнительное доверие. Опять же, это может повредить вашему делу, в зависимости от их мнения о Microsoft.
Я использую jQuery уже несколько месяцев и считаю, что это доставляет удовольствие. Фреймворк ясен и лаконичен, он имеет отличную архитектуру плагинов и очень хорошо поддерживается, но фреймворки - это очень личное дело, и вам, вероятно, следует попробовать несколько, обычно не требуется много времени, чтобы определить тот, который вам больше всего подходит.
Не уверен, что это будет иметь значение для вас, но Microsoft недавно объявила о поддержке jQuery в следующем обновлении VS 2008 Вот сообщение в блоге.
Вы можете услышать, как Джон Ресиг, человек, стоящий за jQuery, рассказывает об этом в различных других фреймворках на недавнем Подкаст Boagworld. Это может помочь вам решить, что это довольно сбалансированная вещь.
Вы можете следить за эта ссылка, чтобы узнать больше о jQuery, зачем его использовать и в чем его преимущества.
Эмпирически у каждого есть свои сильные и слабые стороны, учитывая очень конкретную роль в ваших приложениях. Глобальное определение может быть не самым подходящим подходом. Выполните конкретную задачу и проанализируйте производительность, раздувание, опыт и т. д., А затем сделайте конкретное решение / предложение.
Что ж...
Сначала вы должны подумать, почему вы думаете, что jQuery хорош, но не знаете, какие аргументы использовать, чтобы убедить другого. Возможно, вам следует сначала убедить себя. ;)
В любом случае, jQuery - это просто еще один фреймворк. Вы должны использовать то, что у него лучше всего получается. Если вы собираетесь использовать его только для базовой обработки DOM, забудьте об этом! научитесь правильно использовать js, и все будет в порядке!
Рассмотрим этот HTML:
<body>
<div style = "width: 400px; height: 400px; background-color: red">
<div style = "width: 400px; height: 400px; background-color: red">
</div>
<script type = "text/javascript">
function test1 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
$(div).width("400px").height("400px").css("background-color", "red");
}
function test2 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
$(div).width("400px");
$(div).height("400px");
$(div).css("background-color", "red");
}
function test3 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
div.style.width = "400px";
div.style.height= "400px";
div.style.backgroundColor = "red";
}
function test4 (){
document.body.innerHTML = ""
var div = document.createElement("div");
document.body.appendChild(div);
div.setAttribute("style", "width: 400px; height: 400px; background-color: red");
}
</script>
</body>
Поместите его в hml файл с помощью jquery, доступного в <head>
Затем откройте firebug и запустите этот код: console.profile (); test1 (); console.profileEnd ();
console.profile();
test2();
console.profileEnd();
console.profile();
test3();
console.profileEnd();
console.profile();
test4();
console.profileEnd();
Посмотрите результаты сами!
Но если вы хотите выполнить некоторые сложные манипуляции с DOM, которые потребуют от вас создания нескольких циклов или выяснения, что элементы в DOM соответствуют некоторым критериям, вы можете рассмотреть возможность использования jQuery, поскольку он будет реализовывать эти процедуры за вас.
В любом случае, имейте в виду, что нет ничего лучше, чем управлять DOM с помощью ссылок, которые вы храните в своем коде. Это быстрее и удобнее для других. Google "передовой опыт js".
Я использую jQuery для сложных вещей, реализация которых займет у меня слишком много времени и в результате получится что-то вроде кода jQuery. В таком случае есть смысл его использовать!
Радоваться, веселиться!
Им пользуются все и их мама. :П